URL: http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Submission: On February 05 via manual from JP

Summary

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

urlscan.io Verdict: No classification

Domain & IP information

IP Address AS Autonomous System
1 21 2606:4700:30:... 13335 (CLOUDFLAR...)
2 2a04:4e42::729 54113 (FASTLY)
2 209.197.3.15 20446 (HIGHWINDS3)
1 2a00:1450:401... 15169 (GOOGLE)
10 2606:4700:30:... 13335 (CLOUDFLAR...)
7 88.208.59.100 39572 (ADVANCEDH...)
2 2606:2800:234... 15133 (EDGECAST)
4 23.111.9.35 33438 (HIGHWINDS2)
1 2a00:1450:400... 15169 (GOOGLE)
1 2606:4700::68... 13335 (CLOUDFLAR...)
5 2a00:1450:400... 15169 (GOOGLE)
1 2a00:1450:401... 15169 (GOOGLE)
7 95.211.229.247 60781 (LEASEWEB-...)
6 95.211.229.246 60781 (LEASEWEB-...)
1 2606:4700::68... 13335 (CLOUDFLAR...)
1 2 151.101.120.134 54113 (FASTLY)
1 2606:4700:30:... 13335 (CLOUDFLAR...)
1 94.31.29.128 33438 (HIGHWINDS2)
1 52.4.72.68 14618 (AMAZON-AES)
1 195.181.170.18 60068 (CDN77)
1 69.89.69.120 558 (NNEXT)
1 2606:4700::68... 13335 (CLOUDFLAR...)
4 2606:4700::68... 13335 (CLOUDFLAR...)
2 151.101.128.134 54113 (FASTLY)
1 216.21.13.17 53334 (TUT-AS)
2 93.93.51.191 34655 (DOCLER-AS)
3 93.93.51.190 34655 (DOCLER-AS)
3 69.89.69.121 558 (NNEXT)
1 151.101.120.64 54113 (FASTLY)
101 30
Domain Requested by
25 cdn.thisjav.com www.thisjav.com
10 syndication.exoclick.com ads.exoclick.com
7 ca.clcknads.pro www.thisjav.com
ca.clcknads.pro
6 www.thisjav.com 1 redirects www.thisjav.com
statdynamic.com
5 www.google-analytics.com www.thisjav.com
4 c.disquscdn.com wwwthisjavcom.disqus.com
4 engine.phn.doublepimp.com ca.clcknads.pro
www.thisjav.com
4 use.fontawesome.com www.thisjav.com
use.fontawesome.com
3 galleryn0.awemwh.com www.thisjav.com
3 syndication.exosrv.com ads.exosrv.com
2 pt.ptawe.com ca.clcknads.pro
www.thisjav.com
2 disqus.com wwwthisjavcom.disqus.com
2 wwwthisjavcom.disqus.com 1 redirects www.thisjav.com
2 maxcdn.bootstrapcdn.com www.thisjav.com
2 vjs.zencdn.net www.thisjav.com
1 links.services.disqus.com c.disquscdn.com
1 serve.popads.net c1.popads.net
1 c.adsco.re c1.popads.net
1 c1.popads.net www.thisjav.com
1 dcba.popcash.net cdn.popcash.net
1 cdn.popcash.net www.thisjav.com
1 statdynamic.com www.thisjav.com
1 openload.co www.thisjav.com
1 fonts.gstatic.com www.thisjav.com
1 cdnjs.cloudflare.com www.thisjav.com
1 ajax.googleapis.com www.thisjav.com
1 ads.exoclick.com www.thisjav.com
1 ads.exosrv.com www.thisjav.com
1 fonts.googleapis.com www.thisjav.com
101 29

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

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

This page contains 16 frames:

Primary Page: http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Frame ID: 19DCB9387F7837B7AF607A17D10596B1
Requests: 90 HTTP requests in this frame

Frame: http://syndication.exosrv.com/ads-iframe-display.php?idzone=2961076&type=300x250&p=http%3A//www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/&dt=1549333643642&sub=&tags=&screen_resolution=1600x1200&el=
Frame ID: 9C972062CA4BBA53F92530983DD9037E
Requests: 1 HTTP requests in this frame

Frame: http://syndication.exosrv.com/ads-iframe-display.php?idzone=2961078&type=300x250&p=http%3A//www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/&dt=1549333643644&sub=&tags=&screen_resolution=1600x1200&el=
Frame ID: 628E2E205C05E4CB871305EABEFE23AE
Requests: 1 HTTP requests in this frame

Frame: http://syndication.exosrv.com/ads-iframe-display.php?idzone=2961080&type=300x250&p=http%3A//www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/&dt=1549333643647&sub=&tags=&screen_resolution=1600x1200&el=
Frame ID: 392073BB012652936132860F3F320EDD
Requests: 1 HTTP requests in this frame

Frame: https://openload.co/embed/NOZAq20HCpo
Frame ID: BCB85F7C536A9B58211B379B26577A53
Requests: 1 HTTP requests in this frame

Frame: http://syndication.exoclick.com/ads-iframe-display.php?idzone=2574945&type=728x90&p=http%3A//www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/&dt=1549333643700&sub=&tags=&screen_resolution=1600x1200&el=
Frame ID: 6C14B37D0DCDA85F558FD1096070CE53
Requests: 1 HTTP requests in this frame

Frame: http://syndication.exoclick.com/ads-iframe-display.php?idzone=2354395&type=300x100&p=http%3A//www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/&dt=1549333643704&sub=&tags=&screen_resolution=1600x1200&el=
Frame ID: 084A4224FB553E8812589757B419AD94
Requests: 1 HTTP requests in this frame

Frame: http://syndication.exoclick.com/ads-iframe-display.php?idzone=2574949&type=728x90&p=http%3A//www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/&dt=1549333643726&sub=&tags=&screen_resolution=1600x1200&el=
Frame ID: FDD9CBDFC35A17652F4F632975FD030B
Requests: 1 HTTP requests in this frame

Frame: http://syndication.exoclick.com/ads-iframe-display.php?idzone=2354397&type=300x100&p=http%3A//www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/&dt=1549333643728&sub=&tags=&screen_resolution=1600x1200&el=
Frame ID: 5C7BA2BD57F7D4AF2F3DDE551A7E4444
Requests: 1 HTTP requests in this frame

Frame: http://syndication.exoclick.com/ads-iframe-display.php?idzone=2574931&type=728x90&p=http%3A//www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/&dt=1549333643730&sub=&tags=&screen_resolution=1600x1200&el=
Frame ID: DE21C7B7C69ACCA60149B3CC7BD6A055
Requests: 1 HTTP requests in this frame

Frame: http://syndication.exoclick.com/ads-iframe-display.php?idzone=2354399&type=300x100&p=http%3A//www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/&dt=1549333643735&sub=&tags=&screen_resolution=1600x1200&el=
Frame ID: E9F9F74A20A6BD4514889C34B2212105
Requests: 1 HTTP requests in this frame

Frame: http://syndication.exoclick.com/ads-iframe-display.php?idzone=2574953&type=300x250&p=http%3A//www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/&dt=1549333643737&sub=&tags=&screen_resolution=1600x1200&el=
Frame ID: B2828036F5C8DA51DF639015429235A0
Requests: 1 HTTP requests in this frame

Frame: http://syndication.exoclick.com/ads-iframe-display.php?idzone=2353949&type=300x250&p=http%3A//www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/&dt=1549333643829&sub=&tags=&screen_resolution=1600x1200&el=
Frame ID: 164106822D86DF3106321C9CE430636A
Requests: 1 HTTP requests in this frame

Frame: http://syndication.exoclick.com/ads-iframe-display.php?idzone=2353951&type=300x250&p=http%3A//www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/&dt=1549333643831&sub=&tags=&screen_resolution=1600x1200&el=
Frame ID: 95016ECB660C4DD19920DCC57635E48C
Requests: 1 HTTP requests in this frame

Frame: http://syndication.exoclick.com/ads-iframe-display.php?idzone=2353953&type=300x250&p=http%3A//www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/&dt=1549333643837&sub=&tags=&screen_resolution=1600x1200&el=
Frame ID: 4548ABE6E84D70EC978F9F712EAE5CBF
Requests: 1 HTTP requests in this frame

Frame: https://disqus.com/embed/comments/?base=default&f=wwwthisjavcom&t_u=http%3A%2F%2Fwww.thisjav.com%2Fzh-hant%2Fvideo%2F19CdW3Pk%2Fvdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23%2F&t_d=VDD-096%20%E3%81%BF%E3%81%8A%E3%82%8A%E8%88%9E%20-%20%E3%82%A8%E3%83%AC%E3%83%99%E3%83%BC%E3%82%BF%E3%83%BC%E3%82%AC%E3%83%BC%E3%83%ABin%E2%80%A6%20%EF%BC%BB%E8%84%85%E8%BF%AB%E3%82%B9%E3%82%A4%E3%83%BC%E3%83%88%E3%83%AB%E3%83%BC%E3%83%A0%EF%BC%BD%20Elevator%20Girl%20Mai%EF%BC%8823%EF%BC%89&t_t=VDD-096%20%E3%81%BF%E3%81%8A%E3%82%8A%E8%88%9E%20-%20%E3%82%A8%E3%83%AC%E3%83%99%E3%83%BC%E3%82%BF%E3%83%BC%E3%82%AC%E3%83%BC%E3%83%ABin%E2%80%A6%20%EF%BC%BB%E8%84%85%E8%BF%AB%E3%82%B9%E3%82%A4%E3%83%BC%E3%83%88%E3%83%AB%E3%83%BC%E3%83%A0%EF%BC%BD%20Elevator%20Girl%20Mai%EF%BC%8823%EF%BC%89&s_o=default
Frame ID: 226A4F4B03CBA26C79F9D916D44CBBCB
Requests: 1 HTTP requests in this frame

Screenshot


Page URL History Show full URLs

  1. http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl... HTTP 301
    http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl... Page URL

Detected technologies

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

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

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

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

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



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

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

Page Statistics

101
Requests

35 %
HTTPS

45 %
IPv6

21
Domains

29
Subdomains

30
IPs

6
Countries

1861 kB
Transfer

5710 kB
Size

13
Cookies

Page URL History

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

  1. http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23 HTTP 301
    http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/ Page URL

Redirected requests

There were HTTP redirect chains for the following requests:

Request Chain 52
  • http://wwwthisjavcom.disqus.com/embed.js HTTP 301
  • https://wwwthisjavcom.disqus.com/embed.js

101 HTTP transactions

Resource
Path
Size
x-fer
Type
MIME-Type
Primary Request Cookie set /
www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Redirect Chain
  • http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23
  • http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
121 KB
16 KB
Document
General
Full URL
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:33a3 , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
f338c6856f96a14b4a0b95c4f40cf7e317612ff6c949c109ce9a6add6562d8d1
Security Headers
Name Value
X-Frame-Options SAMEORIGIN

Request headers

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

Response headers

Date
Tue, 05 Feb 2019 02:27:23 GMT
Content-Type
text/html; charset=utf-8
Transfer-Encoding
chunked
Connection
keep-alive
X-Frame-Options
SAMEORIGIN
Content-Language
zh-hant
Vary
Cookie
Set-Cookie
csrftoken=BjvtPUvN1fcMc7sGIVu1zQEbntETDP09YbHk9JvbpCQpcK3y0vDP30CMbtokuwOg; expires=Tue, 04-Feb-2020 02:27:23 GMT; Max-Age=31449600; Path=/
Server
cloudflare
CF-RAY
4a41f00042dd9700-FRA
Content-Encoding
gzip

Redirect headers

Date
Tue, 05 Feb 2019 02:27:22 GMT
Content-Type
text/html; charset=utf-8
Transfer-Encoding
chunked
Connection
keep-alive
Set-Cookie
__cfduid=d40330371a87683fa8593327455b40d011549333641; expires=Wed, 05-Feb-20 02:27:21 GMT; path=/; domain=.thisjav.com; HttpOnly
Content-Language
zh-hant
Location
/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Server
cloudflare
CF-RAY
4a41effe127c9700-FRA
video-js.css
vjs.zencdn.net/5.11.7/
45 KB
14 KB
Stylesheet
General
Full URL
http://vjs.zencdn.net/5.11.7/video-js.css
Requested by
Host: www.thisjav.com
URL: http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Protocol
HTTP/1.1
Server
2a04:4e42::729 , European Union, ASN54113 (FASTLY - Fastly, US),
Reverse DNS
Software
/
Resource Hash
fba4729df172cf704b324e468cb3b0054e6ec85bbc329b1a18d01d9dc0bab8ec

Request headers

Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Tue, 05 Feb 2019 02:27:23 GMT
Content-Encoding
gzip
Last-Modified
Fri, 30 Sep 2016 20:55:40 GMT
ETag
"b9ffb4250af12e79b124a738a4aa15a0"
Vary
Accept-Encoding
X-Cache
HIT
Content-Type
text/css; charset=utf-8
Access-Control-Allow-Origin
*
Cache-Control
public, max-age=31536000
X-Cache-Hits
450
Connection
keep-alive
Timing-Allow-Origin
*
Content-Length
13798
X-Served-By
cache-fra19125-FRA
bootstrap.min.css
maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.5/css/
103 KB
17 KB
Stylesheet
General
Full URL
https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.5/css/bootstrap.min.css
Requested by
Host: www.thisjav.com
URL: http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Protocol
H2
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
209.197.3.15 Phoenix, United States, ASN20446 (HIGHWINDS3 - Highwinds Network Group, Inc., US),
Reverse DNS
vip0x00f.map2.ssl.hwcdn.net
Software
/
Resource Hash
9887e1bff87730bab759289295dbae64edec691373cee7f52caf30df3de5dc96

Request headers

User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Origin
http://www.thisjav.com

Response headers

date
Tue, 05 Feb 2019 02:27:23 GMT
content-encoding
gzip
last-modified
Wed, 12 Dec 2018 18:34:09 GMT
access-control-allow-origin
*
etag
"1544639649"
vary
Accept-Encoding
x-cache
HIT
content-type
text/css; charset=utf-8
status
200
cache-control
public, max-age=31536000
x-hello-human
Say hello back! @getBootstrapCDN on Twitter
accept-ranges
bytes
timing-allow-origin
*
content-length
17266
css
fonts.googleapis.com/
1 KB
468 B
Stylesheet
General
Full URL
https://fonts.googleapis.com/css?family=Anton
Requested by
Host: www.thisjav.com
URL: http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Protocol
H2
Security
TLS 1.2, ECDHE_ECDSA, AES_128_GCM
Server
2a00:1450:4016:80a::200a , Ireland, ASN15169 (GOOGLE - Google LLC, US),
Reverse DNS
Software
ESF /
Resource Hash
7765584a4f9f0b628f4b8c06c38892935dfe63e03d7b5a04a0b54f91d872382f
Security Headers
Name Value
Strict-Transport-Security max-age=31536000
X-Frame-Options SAMEORIGIN
X-Xss-Protection 1; mode=block

Request headers

Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

strict-transport-security
max-age=31536000
content-encoding
br
last-modified
Tue, 05 Feb 2019 02:27:23 GMT
server
ESF
access-control-allow-origin
*
date
Tue, 05 Feb 2019 02:27:23 GMT
x-frame-options
SAMEORIGIN
content-type
text/css; charset=utf-8
status
200
alt-svc
quic=":443"; ma=2592000; v="44,43,39"
cache-control
private, max-age=86400, stale-while-revalidate=604800
timing-allow-origin
*
link
<https://fonts.gstatic.com>; rel=preconnect; crossorigin
x-xss-protection
1; mode=block
expires
Tue, 05 Feb 2019 02:27:23 GMT
owl.carousel.css
www.thisjav.com/static/owl-carousel/
1 KB
943 B
Stylesheet
General
Full URL
http://www.thisjav.com/static/owl-carousel/owl.carousel.css
Requested by
Host: www.thisjav.com
URL: http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:32a3 , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
4dc77ee90dc2225b57b31d28fe06213cd6c491bdc7249a6e70ebd003b72c5702

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
www.thisjav.com
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
text/css,*/*;q=0.1
Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Cookie
__cfduid=d40330371a87683fa8593327455b40d011549333641; csrftoken=BjvtPUvN1fcMc7sGIVu1zQEbntETDP09YbHk9JvbpCQpcK3y0vDP30CMbtokuwOg
Connection
keep-alive
Cache-Control
no-cache
Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Tue, 05 Feb 2019 02:27:23 GMT
Content-Encoding
gzip
CF-Cache-Status
HIT
Last-Modified
Mon, 05 Dec 2016 11:13:09 GMT
Server
cloudflare
ETag
W/"58454bc5-5c4"
Vary
Accept-Encoding
Content-Type
text/css
Cache-Control
public, max-age=14400
Transfer-Encoding
chunked
Connection
keep-alive
CF-RAY
4a41f00815b16397-FRA
Expires
Tue, 05 Feb 2019 06:27:23 GMT
owl.theme.css
www.thisjav.com/static/owl-carousel/
2 KB
1019 B
Stylesheet
General
Full URL
http://www.thisjav.com/static/owl-carousel/owl.theme.css
Requested by
Host: www.thisjav.com
URL: http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:32a3 , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
91ee720f3c25ec6b209d88019c20e2592340ff1fe1c94f3d5431e5fd1e77e5dc

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
www.thisjav.com
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
text/css,*/*;q=0.1
Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Cookie
__cfduid=d40330371a87683fa8593327455b40d011549333641; csrftoken=BjvtPUvN1fcMc7sGIVu1zQEbntETDP09YbHk9JvbpCQpcK3y0vDP30CMbtokuwOg
Connection
keep-alive
Cache-Control
no-cache
Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Tue, 05 Feb 2019 02:27:23 GMT
Content-Encoding
gzip
CF-Cache-Status
HIT
Last-Modified
Mon, 05 Dec 2016 11:13:09 GMT
Server
cloudflare
ETag
W/"58454bc5-681"
Vary
Accept-Encoding
Content-Type
text/css
Cache-Control
public, max-age=14400
Transfer-Encoding
chunked
Connection
keep-alive
CF-RAY
4a41f00804ed634f-FRA
Expires
Tue, 05 Feb 2019 06:27:23 GMT
main.min.css
www.thisjav.com/static/this/css/
15 KB
4 KB
Stylesheet
General
Full URL
http://www.thisjav.com/static/this/css/main.min.css
Requested by
Host: www.thisjav.com
URL: http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:33a3 , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
0a769c6e43613c065b9806e2e544f290fc64dc3d8fcfd07942d249dfb1145462

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
www.thisjav.com
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
text/css,*/*;q=0.1
Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Cookie
__cfduid=d40330371a87683fa8593327455b40d011549333641; csrftoken=BjvtPUvN1fcMc7sGIVu1zQEbntETDP09YbHk9JvbpCQpcK3y0vDP30CMbtokuwOg
Connection
keep-alive
Cache-Control
no-cache
Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Tue, 05 Feb 2019 02:27:23 GMT
Content-Encoding
gzip
CF-Cache-Status
HIT
Last-Modified
Tue, 13 Dec 2016 07:08:35 GMT
Server
cloudflare
ETag
W/"584f9e73-3d66"
Vary
Accept-Encoding
Content-Type
text/css
Cache-Control
public, max-age=14400
Transfer-Encoding
chunked
Connection
keep-alive
CF-RAY
4a41f008104c235a-FRA
Expires
Tue, 05 Feb 2019 06:27:23 GMT
23165
ca.clcknads.pro/v1/apop/js/zone/
90 KB
38 KB
Script
General
Full URL
http://ca.clcknads.pro/v1/apop/js/zone/23165
Requested by
Host: www.thisjav.com
URL: http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Protocol
HTTP/1.1
Server
88.208.59.100 , Netherlands, ASN39572 (ADVANCEDHOSTERS-AS, NL),
Reverse DNS
Software
nginx /
Resource Hash
bcbc0b6ad18d98bf61139e1d7714e4fd27806afa17077083d76294cb00508a1b

Request headers

Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Tue, 05 Feb 2019 02:27:23 GMT
Content-Encoding
gzip
Referrer-Policy
unsafe-url
Server
nginx
Vary
Accept-Encoding
Content-Type
application/javascript; charset=UTF-8
Access-Control-Allow-Origin
*
Access-Control-Max-Age
86400
Access-Control-Allow-Credentials
true
Connection
keep-alive
Transfer-Encoding
chunked
js
ca.clcknads.pro/v1/a/23167/
24 KB
8 KB
Script
General
Full URL
http://ca.clcknads.pro/v1/a/23167/js
Requested by
Host: www.thisjav.com
URL: http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Protocol
HTTP/1.1
Server
88.208.59.100 , Netherlands, ASN39572 (ADVANCEDHOSTERS-AS, NL),
Reverse DNS
Software
nginx /
Resource Hash
adf17cb43830d983dd1d39bb550f38852f06fea77daf6a9058d289ce1e8528e6

Request headers

Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Tue, 05 Feb 2019 02:27:23 GMT
Content-Encoding
gzip
Referrer-Policy
unsafe-url
Server
nginx
Vary
Accept-Encoding
Content-Type
application/javascript; charset=UTF-8
Access-Control-Allow-Origin
*
Access-Control-Max-Age
86400
Access-Control-Allow-Credentials
true
Connection
keep-alive
Transfer-Encoding
chunked
ads.js
ads.exosrv.com/
2 KB
837 B
Script
General
Full URL
https://ads.exosrv.com/ads.js
Requested by
Host: www.thisjav.com
URL: http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Protocol
H2
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
2606:2800:234:1f1f:1754:1fef:718:1223 , United States, ASN15133 (EDGECAST - MCI Communications Services, Inc. d/b/a Verizon Business, US),
Reverse DNS
Software
ECS (fcn/40E2) /
Resource Hash
bbbb0ffd2b7f74d99ab11edc18f0a73ee170745524644a785a03be193eb13a04

Request headers

Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

date
Tue, 05 Feb 2019 02:27:23 GMT
content-encoding
gzip
last-modified
Tue, 05 Feb 2019 00:40:48 GMT
server
ECS (fcn/40E2)
vary
Accept-Encoding
x-cache
HIT
content-type
text/javascript;charset=UTF-8
status
200
cache-control
max-age=10800
accept-ranges
bytes
content-length
779
expires
Tue, 05 Feb 2019 05:27:23 GMT
ads.js
ads.exoclick.com/
2 KB
964 B
Script
General
Full URL
https://ads.exoclick.com/ads.js
Requested by
Host: www.thisjav.com
URL: http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Protocol
H2
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
2606:2800:234:1f1f:1754:1fef:718:1223 , United States, ASN15133 (EDGECAST - MCI Communications Services, Inc. d/b/a Verizon Business, US),
Reverse DNS
Software
ECS (fcn/40E2) /
Resource Hash
19ba920e285740334e022bd97d6dfb8f7c390db18d301346e2b527e4fe576db9

Request headers

Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

date
Tue, 05 Feb 2019 02:27:23 GMT
content-encoding
gzip
last-modified
Tue, 05 Feb 2019 00:41:00 GMT
server
ECS (fcn/40E2)
vary
Accept-Encoding
x-cache
HIT
content-type
text/javascript;charset=UTF-8
status
200
cache-control
max-age=10800
accept-ranges
bytes
content-length
781
expires
Tue, 05 Feb 2019 05:27:23 GMT
QmRbaVxB1JHEVyaq2caMbJKYadqZrg8xRywGuVEWgeaaNn
cdn.thisjav.com/ipfs/
53 KB
54 KB
Image
General
Full URL
http://cdn.thisjav.com/ipfs/QmRbaVxB1JHEVyaq2caMbJKYadqZrg8xRywGuVEWgeaaNn
Requested by
Host: www.thisjav.com
URL: http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:33a3 , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
006dde1b331eb5ff5a0ec37133b77cf6120bff17b51d01cd0fa854a84c8c14c7

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
cdn.thisjav.com
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
image/webp,image/apng,image/*,*/*;q=0.8
Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Cookie
__cfduid=d40330371a87683fa8593327455b40d011549333641
Connection
keep-alive
Cache-Control
no-cache
Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Tue, 05 Feb 2019 02:27:23 GMT
Content-Encoding
gzip
Transfer-Encoding
chunked
Suborigin
ipfs000bciqdazqdlw3fvhpqwitwwqkvlq6gphlpdiaej2hyyopw4g6ywz2veky
X-Ipfs-Gateway-Host
cdn-bank1-ams1
Connection
keep-alive
Last-Modified
Thu, 01 Jan 1970 00:00:01 GMT
Server
cloudflare
Etag
W/"QmRbaVxB1JHEVyaq2caMbJKYadqZrg8xRywGuVEWgeaaNn"
Vary
Accept-Encoding
Access-Control-Allow-Methods
GET, POST, OPTIONS
Content-Type
image/jpeg
Access-Control-Allow-Origin
*
Access-Control-Expose-Headers
Content-Range, X-Chunked-Output, X-Stream-Output
Cache-Control
public, max-age=29030400, immutable
X-Ipfs-Path
/ipfs/QmRbaVxB1JHEVyaq2caMbJKYadqZrg8xRywGuVEWgeaaNn
CF-RAY
4a41f008342c9700-FRA
Access-Control-Allow-Headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmczHFKWVHMkUucoCRM2287ocXEXARiu6YWSzjazEsmPAW
cdn.thisjav.com/ipfs/
42 KB
43 KB
Image
General
Full URL
http://cdn.thisjav.com/ipfs/QmczHFKWVHMkUucoCRM2287ocXEXARiu6YWSzjazEsmPAW
Requested by
Host: www.thisjav.com
URL: http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:33a3 , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
974fb8c880eb98ae22b40d482a0d8123461225d7f360fb3a11a99a6ddf1b3990

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
cdn.thisjav.com
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
image/webp,image/apng,image/*,*/*;q=0.8
Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Cookie
__cfduid=d40330371a87683fa8593327455b40d011549333641
Connection
keep-alive
Cache-Control
no-cache
Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Tue, 05 Feb 2019 02:27:24 GMT
Content-Encoding
gzip
Transfer-Encoding
chunked
Suborigin
ipfs000bciqntj3lwu5dl274vopsnfensglv5o4al3hvs4c3drvtyi2af6anohy
X-Ipfs-Gateway-Host
cdn-bank2-ams1
Connection
keep-alive
Last-Modified
Thu, 01 Jan 1970 00:00:01 GMT
Server
cloudflare
Etag
W/"QmczHFKWVHMkUucoCRM2287ocXEXARiu6YWSzjazEsmPAW"
Vary
Accept-Encoding
Access-Control-Allow-Methods
GET, POST, OPTIONS
Content-Type
image/jpeg
Access-Control-Allow-Origin
*
Access-Control-Expose-Headers
Content-Range, X-Chunked-Output, X-Stream-Output
Cache-Control
public, max-age=29030400, immutable
X-Ipfs-Path
/ipfs/QmczHFKWVHMkUucoCRM2287ocXEXARiu6YWSzjazEsmPAW
CF-RAY
4a41f00835c796e8-FRA
Access-Control-Allow-Headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmVRzxAZG88GKZAKBuhdvwzjYbttvRzeJfJtnsjtj7nFQe
cdn.thisjav.com/ipfs/
54 KB
55 KB
Image
General
Full URL
http://cdn.thisjav.com/ipfs/QmVRzxAZG88GKZAKBuhdvwzjYbttvRzeJfJtnsjtj7nFQe
Requested by
Host: www.thisjav.com
URL: http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:32a3 , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
b736d71686749724687fefac932f4778ee6aada4ca4aa9a87efcbc150aa980f4

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
cdn.thisjav.com
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
image/webp,image/apng,image/*,*/*;q=0.8
Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Cookie
__cfduid=d40330371a87683fa8593327455b40d011549333641
Connection
keep-alive
Cache-Control
no-cache
Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Tue, 05 Feb 2019 02:27:24 GMT
Content-Encoding
gzip
Transfer-Encoding
chunked
Suborigin
ipfs000bciqgsyezyyp6vrjzz52566cpgokb4m36t36fun7gvtlenmb7pmxsboy
X-Ipfs-Gateway-Host
cdn-bank1-ams1
Connection
keep-alive
Last-Modified
Thu, 01 Jan 1970 00:00:01 GMT
Server
cloudflare
Etag
W/"QmVRzxAZG88GKZAKBuhdvwzjYbttvRzeJfJtnsjtj7nFQe"
Vary
Accept-Encoding
Access-Control-Allow-Methods
GET, POST, OPTIONS
Content-Type
image/jpeg
Access-Control-Allow-Origin
*
Access-Control-Expose-Headers
Content-Range, X-Chunked-Output, X-Stream-Output
Cache-Control
public, max-age=29030400, immutable
X-Ipfs-Path
/ipfs/QmVRzxAZG88GKZAKBuhdvwzjYbttvRzeJfJtnsjtj7nFQe
CF-RAY
4a41f0089045636d-FRA
Access-Control-Allow-Headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmagKUBhsPT3dYLgMFS9ENt7dusy6TEtL1bDGVAygrXdjx
cdn.thisjav.com/ipfs/
50 KB
51 KB
Image
General
Full URL
http://cdn.thisjav.com/ipfs/QmagKUBhsPT3dYLgMFS9ENt7dusy6TEtL1bDGVAygrXdjx
Requested by
Host: www.thisjav.com
URL: http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:32a3 , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
754bd528f878ecd01176ab82fa6f43510635b37acdbf46b42db680a2a023d72c

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
cdn.thisjav.com
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
image/webp,image/apng,image/*,*/*;q=0.8
Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Cookie
__cfduid=d40330371a87683fa8593327455b40d011549333641
Connection
keep-alive
Cache-Control
no-cache
Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Tue, 05 Feb 2019 02:27:23 GMT
Content-Encoding
gzip
Transfer-Encoding
chunked
Suborigin
ipfs000bciqlovq2ylnxmrhx5376acctjbpf3tlsntqzz7dr2dmlrzumikg322y
X-Ipfs-Gateway-Host
cdn-bank1-ams1
Connection
keep-alive
Last-Modified
Thu, 01 Jan 1970 00:00:01 GMT
Server
cloudflare
Etag
W/"QmagKUBhsPT3dYLgMFS9ENt7dusy6TEtL1bDGVAygrXdjx"
Vary
Accept-Encoding
Access-Control-Allow-Methods
GET, POST, OPTIONS
Content-Type
image/jpeg
Access-Control-Allow-Origin
*
Access-Control-Expose-Headers
Content-Range, X-Chunked-Output, X-Stream-Output
Cache-Control
public, max-age=29030400, immutable
X-Ipfs-Path
/ipfs/QmagKUBhsPT3dYLgMFS9ENt7dusy6TEtL1bDGVAygrXdjx
CF-RAY
4a41f00893d2637f-FRA
Access-Control-Allow-Headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmRDzbyVJtw7LjXKjf5qXjQ7y25Xf2AEY7eACyoJDHHu7o
cdn.thisjav.com/ipfs/
47 KB
48 KB
Image
General
Full URL
http://cdn.thisjav.com/ipfs/QmRDzbyVJtw7LjXKjf5qXjQ7y25Xf2AEY7eACyoJDHHu7o
Requested by
Host: www.thisjav.com
URL: http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:32a3 , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
09988d6d807db6e07cd329d778a391ffbc5ce8afc0fc4f3d74ac3ffea33bb5cf

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
cdn.thisjav.com
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
image/webp,image/apng,image/*,*/*;q=0.8
Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Cookie
__cfduid=d40330371a87683fa8593327455b40d011549333641
Connection
keep-alive
Cache-Control
no-cache
Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Tue, 05 Feb 2019 02:27:24 GMT
Content-Encoding
gzip
Transfer-Encoding
chunked
Suborigin
ipfs000bciqcvxt5lgbmsfjvdnebwi7ygyev7i4tc2bxqjmbfidseoyvbn3fggq
X-Ipfs-Gateway-Host
cdn-bank1-ams1
Connection
keep-alive
Last-Modified
Thu, 01 Jan 1970 00:00:01 GMT
Server
cloudflare
Etag
W/"QmRDzbyVJtw7LjXKjf5qXjQ7y25Xf2AEY7eACyoJDHHu7o"
Vary
Accept-Encoding
Access-Control-Allow-Methods
GET, POST, OPTIONS
Content-Type
image/jpeg
Access-Control-Allow-Origin
*
Access-Control-Expose-Headers
Content-Range, X-Chunked-Output, X-Stream-Output
Cache-Control
public, max-age=29030400, immutable
X-Ipfs-Path
/ipfs/QmRDzbyVJtw7LjXKjf5qXjQ7y25Xf2AEY7eACyoJDHHu7o
CF-RAY
4a41f008978c639d-FRA
Access-Control-Allow-Headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
Qmd63Ws7iFMfaT6PWL1zCW8RLRheTV1CQHVmD8zowbbQEY
cdn.thisjav.com/ipfs/
42 KB
43 KB
Image
General
Full URL
http://cdn.thisjav.com/ipfs/Qmd63Ws7iFMfaT6PWL1zCW8RLRheTV1CQHVmD8zowbbQEY
Requested by
Host: www.thisjav.com
URL: http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:33a3 , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
5ed444a63cef25da50f57975a7d24b870e6365e37b23c5b0b75ec656e92bcf83

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
cdn.thisjav.com
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
image/webp,image/apng,image/*,*/*;q=0.8
Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Cookie
__cfduid=d40330371a87683fa8593327455b40d011549333641
Connection
keep-alive
Cache-Control
no-cache
Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Tue, 05 Feb 2019 02:27:24 GMT
Content-Encoding
gzip
Transfer-Encoding
chunked
Suborigin
ipfs000bciqnwila7airqedsk5d6zhrkvqxnwasi73qrfq5bjhgqnn7ss6zvw7i
X-Ipfs-Gateway-Host
cdn-bank2-ams1
Connection
keep-alive
Last-Modified
Thu, 01 Jan 1970 00:00:01 GMT
Server
cloudflare
Etag
W/"Qmd63Ws7iFMfaT6PWL1zCW8RLRheTV1CQHVmD8zowbbQEY"
Vary
Accept-Encoding
Access-Control-Allow-Methods
GET, POST, OPTIONS
Content-Type
image/jpeg
Access-Control-Allow-Origin
*
Access-Control-Expose-Headers
Content-Range, X-Chunked-Output, X-Stream-Output
Cache-Control
public, max-age=29030400, immutable
X-Ipfs-Path
/ipfs/Qmd63Ws7iFMfaT6PWL1zCW8RLRheTV1CQHVmD8zowbbQEY
CF-RAY
4a41f008a4b72360-FRA
Access-Control-Allow-Headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
Qmd1ZhdEutQ9FCy6fr1Fz45r16jbDvSnXxJYuTWCsHJZa4
cdn.thisjav.com/ipfs/
56 KB
57 KB
Image
General
Full URL
http://cdn.thisjav.com/ipfs/Qmd1ZhdEutQ9FCy6fr1Fz45r16jbDvSnXxJYuTWCsHJZa4
Requested by
Host: www.thisjav.com
URL: http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:33a3 , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
96c458c8a105b9437ab89bc9677fb1b71aa212bb1419c6ca5f38317619894fe6

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
cdn.thisjav.com
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
image/webp,image/apng,image/*,*/*;q=0.8
Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Cookie
__cfduid=d40330371a87683fa8593327455b40d011549333641; _ga=GA1.2.286613835.1549333644; _gid=GA1.2.705655925.1549333644; _gat=1
Connection
keep-alive
Cache-Control
no-cache
Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Tue, 05 Feb 2019 02:27:24 GMT
Content-Encoding
gzip
Transfer-Encoding
chunked
Suborigin
ipfs000bciqnt643bjwlvi75mbhicwqlhhsfjvhjtfnamfgdiugnzkc3upsb4ji
X-Ipfs-Gateway-Host
cdn-bank1-ams1
Connection
keep-alive
Last-Modified
Thu, 01 Jan 1970 00:00:01 GMT
Server
cloudflare
Etag
W/"Qmd1ZhdEutQ9FCy6fr1Fz45r16jbDvSnXxJYuTWCsHJZa4"
Vary
Accept-Encoding
Access-Control-Allow-Methods
GET, POST, OPTIONS
Content-Type
image/jpeg
Access-Control-Allow-Origin
*
Access-Control-Expose-Headers
Content-Range, X-Chunked-Output, X-Stream-Output
Cache-Control
public, max-age=29030400, immutable
X-Ipfs-Path
/ipfs/Qmd1ZhdEutQ9FCy6fr1Fz45r16jbDvSnXxJYuTWCsHJZa4
CF-RAY
4a41f00a64949700-FRA
Access-Control-Allow-Headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmWnZW7LGTevpEWqxfnSvCsomdfMuKfomFgNu227oHxWVD
cdn.thisjav.com/ipfs/
55 KB
56 KB
Image
General
Full URL
http://cdn.thisjav.com/ipfs/QmWnZW7LGTevpEWqxfnSvCsomdfMuKfomFgNu227oHxWVD
Requested by
Host: www.thisjav.com
URL: http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:32a3 , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
d57ac77f37776038776b9b872eae2794e9d22c49754c920b734f1ea215531704

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
cdn.thisjav.com
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
image/webp,image/apng,image/*,*/*;q=0.8
Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Cookie
__cfduid=d40330371a87683fa8593327455b40d011549333641; _ga=GA1.2.286613835.1549333644; _gid=GA1.2.705655925.1549333644; _gat=1
Connection
keep-alive
Cache-Control
no-cache
Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Tue, 05 Feb 2019 02:27:25 GMT
Content-Encoding
gzip
Transfer-Encoding
chunked
Suborigin
ipfs000bciqh3afvqst4forbu6xyiwnvhs5svnqz2zkwr6xrje5pbvipxkhrvua
X-Ipfs-Gateway-Host
cdn-bank1-ams1
Connection
keep-alive
Last-Modified
Thu, 01 Jan 1970 00:00:01 GMT
Server
cloudflare
Etag
W/"QmWnZW7LGTevpEWqxfnSvCsomdfMuKfomFgNu227oHxWVD"
Vary
Accept-Encoding
Access-Control-Allow-Methods
GET, POST, OPTIONS
Content-Type
image/jpeg
Access-Control-Allow-Origin
*
Access-Control-Expose-Headers
Content-Range, X-Chunked-Output, X-Stream-Output
Cache-Control
public, max-age=29030400, immutable
X-Ipfs-Path
/ipfs/QmWnZW7LGTevpEWqxfnSvCsomdfMuKfomFgNu227oHxWVD
CF-RAY
4a41f00b043f637f-FRA
Access-Control-Allow-Headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmUWoMkdgX6cHsRg6wATZdEWCPphXSTja3txy9hkP3z78p
cdn.thisjav.com/ipfs/
50 KB
51 KB
Image
General
Full URL
http://cdn.thisjav.com/ipfs/QmUWoMkdgX6cHsRg6wATZdEWCPphXSTja3txy9hkP3z78p
Requested by
Host: www.thisjav.com
URL: http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:33a3 , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
47835c70657e2b2f6905562aa06b79725267fb8e0839d5a6a6835481cd6e363f

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
cdn.thisjav.com
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
image/webp,image/apng,image/*,*/*;q=0.8
Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Cookie
__cfduid=d40330371a87683fa8593327455b40d011549333641; _ga=GA1.2.286613835.1549333644; _gid=GA1.2.705655925.1549333644; _gat=1
Connection
keep-alive
Cache-Control
no-cache
Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Tue, 05 Feb 2019 02:27:24 GMT
Content-Encoding
gzip
Transfer-Encoding
chunked
Suborigin
ipfs000bciqfxp5vrwhuqdf6flgfsuhkyr7l4dx2fsf3ehpw3se4myxfv35dmji
X-Ipfs-Gateway-Host
cdn-bank2-ams1
Connection
keep-alive
Last-Modified
Thu, 01 Jan 1970 00:00:01 GMT
Server
cloudflare
Etag
W/"QmUWoMkdgX6cHsRg6wATZdEWCPphXSTja3txy9hkP3z78p"
Vary
Accept-Encoding
Access-Control-Allow-Methods
GET, POST, OPTIONS
Content-Type
image/jpeg
Access-Control-Allow-Origin
*
Access-Control-Expose-Headers
Content-Range, X-Chunked-Output, X-Stream-Output
Cache-Control
public, max-age=29030400, immutable
X-Ipfs-Path
/ipfs/QmUWoMkdgX6cHsRg6wATZdEWCPphXSTja3txy9hkP3z78p
CF-RAY
4a41f00b865696e8-FRA
Access-Control-Allow-Headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmQEQH1weoAyV2hRa24sKAJbKVyNaXki4atCT7mCojZaM9
cdn.thisjav.com/ipfs/
47 KB
48 KB
Image
General
Full URL
http://cdn.thisjav.com/ipfs/QmQEQH1weoAyV2hRa24sKAJbKVyNaXki4atCT7mCojZaM9
Requested by
Host: www.thisjav.com
URL: http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:33a3 , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
e11d5efa238053983be6687278ebc93972ffe208bf5df2f5d3fae9dbf15aaf0e

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
cdn.thisjav.com
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
image/webp,image/apng,image/*,*/*;q=0.8
Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Cookie
__cfduid=d40330371a87683fa8593327455b40d011549333641; _ga=GA1.2.286613835.1549333644; _gid=GA1.2.705655925.1549333644; _gat=1
Connection
keep-alive
Cache-Control
no-cache
Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Tue, 05 Feb 2019 02:27:24 GMT
Content-Encoding
gzip
Transfer-Encoding
chunked
Suborigin
ipfs000bciqbyhmr5vxzlticasa5fg4fe3ma5dnex4myxxr23yc7khcxdnengva
X-Ipfs-Gateway-Host
cdn-bank2-ams1
Connection
keep-alive
Last-Modified
Thu, 01 Jan 1970 00:00:01 GMT
Server
cloudflare
Etag
W/"QmQEQH1weoAyV2hRa24sKAJbKVyNaXki4atCT7mCojZaM9"
Vary
Accept-Encoding
Access-Control-Allow-Methods
GET, POST, OPTIONS
Content-Type
image/jpeg
Access-Control-Allow-Origin
*
Access-Control-Expose-Headers
Content-Range, X-Chunked-Output, X-Stream-Output
Cache-Control
public, max-age=29030400, immutable
X-Ipfs-Path
/ipfs/QmQEQH1weoAyV2hRa24sKAJbKVyNaXki4atCT7mCojZaM9
CF-RAY
4a41f00ba4f42360-FRA
Access-Control-Allow-Headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmYLNXDWuwQtE4w4sa3fKY3JZUuGkSiJam53PEGuczbciN
cdn.thisjav.com/ipfs/
41 KB
41 KB
Image
General
Full URL
http://cdn.thisjav.com/ipfs/QmYLNXDWuwQtE4w4sa3fKY3JZUuGkSiJam53PEGuczbciN
Requested by
Host: www.thisjav.com
URL: http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:33a3 , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
8a156a1dea9c9cdbfec4bef488106e24663c0c0738c4bf36ecf785514c6a2641

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
cdn.thisjav.com
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
image/webp,image/apng,image/*,*/*;q=0.8
Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Cookie
__cfduid=d40330371a87683fa8593327455b40d011549333641; _ga=GA1.2.286613835.1549333644; _gid=GA1.2.705655925.1549333644; _gat=1
Connection
keep-alive
Cache-Control
no-cache
Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Tue, 05 Feb 2019 02:27:24 GMT
Content-Encoding
gzip
Transfer-Encoding
chunked
Suborigin
ipfs000bciqjjauq2imi7viya4on7rgjcvcatrqeampo3pzogjrmawkpn3if7cy
X-Ipfs-Gateway-Host
cdn-bank2-ams1
Connection
keep-alive
Last-Modified
Thu, 01 Jan 1970 00:00:01 GMT
Server
cloudflare
Etag
W/"QmYLNXDWuwQtE4w4sa3fKY3JZUuGkSiJam53PEGuczbciN"
Vary
Accept-Encoding
Access-Control-Allow-Methods
GET, POST, OPTIONS
Content-Type
image/jpeg
Access-Control-Allow-Origin
*
Access-Control-Expose-Headers
Content-Range, X-Chunked-Output, X-Stream-Output
Cache-Control
public, max-age=29030400, immutable
X-Ipfs-Path
/ipfs/QmYLNXDWuwQtE4w4sa3fKY3JZUuGkSiJam53PEGuczbciN
CF-RAY
4a41f00bb65d96e8-FRA
Access-Control-Allow-Headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmZXRkiE1gWn5N5GUryujPbiDrLxwxfGJBcwqgAaQ21GgP
cdn.thisjav.com/ipfs/
43 KB
44 KB
Image
General
Full URL
http://cdn.thisjav.com/ipfs/QmZXRkiE1gWn5N5GUryujPbiDrLxwxfGJBcwqgAaQ21GgP
Requested by
Host: www.thisjav.com
URL: http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:33a3 , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
d1ca66175d8c8247c163f4c665d1a9a15e24ced1bc0d96861187e0e32fa4d2be

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
cdn.thisjav.com
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
image/webp,image/apng,image/*,*/*;q=0.8
Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Cookie
__cfduid=d40330371a87683fa8593327455b40d011549333641; _ga=GA1.2.286613835.1549333644; _gid=GA1.2.705655925.1549333644; _gat=1
Connection
keep-alive
Cache-Control
no-cache
Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Tue, 05 Feb 2019 02:27:25 GMT
Content-Encoding
gzip
Transfer-Encoding
chunked
Suborigin
ipfs000bciqkmm2l6y5acnylk2ku3og3tszr2dko74gz3rxzu6pj2755igxlaoa
X-Ipfs-Gateway-Host
cdn-bank2-ams1
Connection
keep-alive
Last-Modified
Thu, 01 Jan 1970 00:00:01 GMT
Server
cloudflare
Etag
W/"QmZXRkiE1gWn5N5GUryujPbiDrLxwxfGJBcwqgAaQ21GgP"
Vary
Accept-Encoding
Access-Control-Allow-Methods
GET, POST, OPTIONS
Content-Type
image/jpeg
Access-Control-Allow-Origin
*
Access-Control-Expose-Headers
Content-Range, X-Chunked-Output, X-Stream-Output
Cache-Control
public, max-age=29030400, immutable
X-Ipfs-Path
/ipfs/QmZXRkiE1gWn5N5GUryujPbiDrLxwxfGJBcwqgAaQ21GgP
CF-RAY
4a41f00e96e396e8-FRA
Access-Control-Allow-Headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmYVHP4EPsrQrcZkTaJ7K6bDDXU9sVg2E25x9oTwJsfgv1
cdn.thisjav.com/ipfs/
36 KB
37 KB
Image
General
Full URL
http://cdn.thisjav.com/ipfs/QmYVHP4EPsrQrcZkTaJ7K6bDDXU9sVg2E25x9oTwJsfgv1
Requested by
Host: www.thisjav.com
URL: http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:33a3 , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
ff23e90cdc1653e38918218f9657278de8c99f3de1ee4d959a9c50492c33104c

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
cdn.thisjav.com
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
image/webp,image/apng,image/*,*/*;q=0.8
Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Cookie
__cfduid=d40330371a87683fa8593327455b40d011549333641; _ga=GA1.2.286613835.1549333644; _gid=GA1.2.705655925.1549333644; _gat=1
Connection
keep-alive
Cache-Control
no-cache
Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Tue, 05 Feb 2019 02:27:24 GMT
Content-Encoding
gzip
Transfer-Encoding
chunked
Suborigin
ipfs000bciqjnsx27lhtox4u42suqd57ivhvhu23qxuwlsc27osabqhae3rhplq
X-Ipfs-Gateway-Host
cdn-bank2-ams1
Connection
keep-alive
Last-Modified
Thu, 01 Jan 1970 00:00:01 GMT
Server
cloudflare
Etag
W/"QmYVHP4EPsrQrcZkTaJ7K6bDDXU9sVg2E25x9oTwJsfgv1"
Vary
Accept-Encoding
Access-Control-Allow-Methods
GET, POST, OPTIONS
Content-Type
image/jpeg
Access-Control-Allow-Origin
*
Access-Control-Expose-Headers
Content-Range, X-Chunked-Output, X-Stream-Output
Cache-Control
public, max-age=29030400, immutable
X-Ipfs-Path
/ipfs/QmYVHP4EPsrQrcZkTaJ7K6bDDXU9sVg2E25x9oTwJsfgv1
CF-RAY
4a41f00ea5372360-FRA
Access-Control-Allow-Headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmRqgSeLbZGBSyw6HsYbvc6SmAt4z8dQmKMfFdhKUyVWRh
cdn.thisjav.com/ipfs/
36 KB
37 KB
Image
General
Full URL
http://cdn.thisjav.com/ipfs/QmRqgSeLbZGBSyw6HsYbvc6SmAt4z8dQmKMfFdhKUyVWRh
Requested by
Host: www.thisjav.com
URL: http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:33a3 , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
1eddf699e82399631b3bd0458a4e38af2567b7f6790f557768fb298d2a026928

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
cdn.thisjav.com
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
image/webp,image/apng,image/*,*/*;q=0.8
Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Cookie
__cfduid=d40330371a87683fa8593327455b40d011549333641; _ga=GA1.2.286613835.1549333644; _gid=GA1.2.705655925.1549333644; _gat=1
Connection
keep-alive
Cache-Control
no-cache
Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Tue, 05 Feb 2019 02:27:25 GMT
Content-Encoding
gzip
Transfer-Encoding
chunked
Suborigin
ipfs000bciqdiaw5hvtf2fckiai4lnfubglgqhjde6gsdxaq7iz635ahejrn53a
X-Ipfs-Gateway-Host
cdn-bank1-ams1
Connection
keep-alive
Last-Modified
Thu, 01 Jan 1970 00:00:01 GMT
Server
cloudflare
Etag
W/"QmRqgSeLbZGBSyw6HsYbvc6SmAt4z8dQmKMfFdhKUyVWRh"
Vary
Accept-Encoding
Access-Control-Allow-Methods
GET, POST, OPTIONS
Content-Type
image/jpeg
Access-Control-Allow-Origin
*
Access-Control-Expose-Headers
Content-Range, X-Chunked-Output, X-Stream-Output
Cache-Control
public, max-age=29030400, immutable
X-Ipfs-Path
/ipfs/QmRqgSeLbZGBSyw6HsYbvc6SmAt4z8dQmKMfFdhKUyVWRh
CF-RAY
4a41f00f15679700-FRA
Access-Control-Allow-Headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmZdoiUorHsQXYxPbML67caR48yh5EzDNKohXV93mHjZ5M
cdn.thisjav.com/ipfs/
36 KB
37 KB
Image
General
Full URL
http://cdn.thisjav.com/ipfs/QmZdoiUorHsQXYxPbML67caR48yh5EzDNKohXV93mHjZ5M
Requested by
Host: www.thisjav.com
URL: http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:32a3 , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
6526c1f7872675f5472d267ada2ed40d08c38a9b5aa28f972def6761d6dae987

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
cdn.thisjav.com
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
image/webp,image/apng,image/*,*/*;q=0.8
Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Cookie
__cfduid=d40330371a87683fa8593327455b40d011549333641; _ga=GA1.2.286613835.1549333644; _gid=GA1.2.705655925.1549333644; _gat=1
Connection
keep-alive
Cache-Control
no-cache
Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Tue, 05 Feb 2019 02:27:26 GMT
Content-Encoding
gzip
Transfer-Encoding
chunked
Suborigin
ipfs000bciqkpvm5cjevd2rpmthpcanerctnhpzdw2doupsvxiicojxie4fncda
X-Ipfs-Gateway-Host
cdn-bank1-ams1
Connection
keep-alive
Last-Modified
Thu, 01 Jan 1970 00:00:01 GMT
Server
cloudflare
Etag
W/"QmZdoiUorHsQXYxPbML67caR48yh5EzDNKohXV93mHjZ5M"
Vary
Accept-Encoding
Access-Control-Allow-Methods
GET, POST, OPTIONS
Content-Type
image/jpeg
Access-Control-Allow-Origin
*
Access-Control-Expose-Headers
Content-Range, X-Chunked-Output, X-Stream-Output
Cache-Control
public, max-age=29030400, immutable
X-Ipfs-Path
/ipfs/QmZdoiUorHsQXYxPbML67caR48yh5EzDNKohXV93mHjZ5M
CF-RAY
4a41f00f4101636d-FRA
Access-Control-Allow-Headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmePgUJQgQUDGazS51WPvH7ZHH18Cix3ngVxZrqGJJLsJZ
cdn.thisjav.com/ipfs/
41 KB
41 KB
Image
General
Full URL
http://cdn.thisjav.com/ipfs/QmePgUJQgQUDGazS51WPvH7ZHH18Cix3ngVxZrqGJJLsJZ
Requested by
Host: www.thisjav.com
URL: http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:32a3 , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
20eca86fc8726b99832c2676311a74d5bc8727c18acc0616dede12e73122f7d0

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
cdn.thisjav.com
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
image/webp,image/apng,image/*,*/*;q=0.8
Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Cookie
__cfduid=d40330371a87683fa8593327455b40d011549333641; _ga=GA1.2.286613835.1549333644; _gid=GA1.2.705655925.1549333644; _gat=1
Connection
keep-alive
Cache-Control
no-cache
Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Tue, 05 Feb 2019 02:27:25 GMT
Content-Encoding
gzip
Transfer-Encoding
chunked
Suborigin
ipfs000bciqo5anzxnt6jcq7o3fdiu5si2f53wtk7zz3lqomrnzr2echhi72m2q
X-Ipfs-Gateway-Host
cdn-bank1-ams1
Connection
keep-alive
Last-Modified
Thu, 01 Jan 1970 00:00:01 GMT
Server
cloudflare
Etag
W/"QmePgUJQgQUDGazS51WPvH7ZHH18Cix3ngVxZrqGJJLsJZ"
Vary
Accept-Encoding
Access-Control-Allow-Methods
GET, POST, OPTIONS
Content-Type
image/jpeg
Access-Control-Allow-Origin
*
Access-Control-Expose-Headers
Content-Range, X-Chunked-Output, X-Stream-Output
Cache-Control
public, max-age=29030400, immutable
X-Ipfs-Path
/ipfs/QmePgUJQgQUDGazS51WPvH7ZHH18Cix3ngVxZrqGJJLsJZ
CF-RAY
4a41f00f5069639d-FRA
Access-Control-Allow-Headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmSNZ2uFSaMR7AmdP69sZFDRggJie3vAxUbDceZbsYoVi7
cdn.thisjav.com/ipfs/
38 KB
39 KB
Image
General
Full URL
http://cdn.thisjav.com/ipfs/QmSNZ2uFSaMR7AmdP69sZFDRggJie3vAxUbDceZbsYoVi7
Requested by
Host: www.thisjav.com
URL: http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:33a3 , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
86b36d9dccf5c92a1f15ed4dda109d36e8586144fd8aaf3203bf3e8705669d26

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
cdn.thisjav.com
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
image/webp,image/apng,image/*,*/*;q=0.8
Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Cookie
__cfduid=d40330371a87683fa8593327455b40d011549333641; _ga=GA1.2.286613835.1549333644; _gid=GA1.2.705655925.1549333644; _gat=1
Connection
keep-alive
Cache-Control
no-cache
Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Tue, 05 Feb 2019 02:27:24 GMT
Content-Encoding
gzip
Transfer-Encoding
chunked
Suborigin
ipfs000bciqdx2352ocq7nwfjtnxwa36ecfu2moypc4j3j4m2jutoe2mpfoaeia
X-Ipfs-Gateway-Host
cdn-bank2-ams1
Connection
keep-alive
Last-Modified
Thu, 01 Jan 1970 00:00:01 GMT
Server
cloudflare
Etag
W/"QmSNZ2uFSaMR7AmdP69sZFDRggJie3vAxUbDceZbsYoVi7"
Vary
Accept-Encoding
Access-Control-Allow-Methods
GET, POST, OPTIONS
Content-Type
image/jpeg
Access-Control-Allow-Origin
*
Access-Control-Expose-Headers
Content-Range, X-Chunked-Output, X-Stream-Output
Cache-Control
public, max-age=29030400, immutable
X-Ipfs-Path
/ipfs/QmSNZ2uFSaMR7AmdP69sZFDRggJie3vAxUbDceZbsYoVi7
CF-RAY
4a41f00f95502360-FRA
Access-Control-Allow-Headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmS6Fj9tCY7L7vSGvuzLcWbaN1fRNUgnFayB1jLnbXZMy8
cdn.thisjav.com/ipfs/
38 KB
39 KB
Image
General
Full URL
http://cdn.thisjav.com/ipfs/QmS6Fj9tCY7L7vSGvuzLcWbaN1fRNUgnFayB1jLnbXZMy8
Requested by
Host: www.thisjav.com
URL: http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:33a3 , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
6b4b7273174adcb9d054653157fe42d557468156b92ccfe45632659144f07058

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
cdn.thisjav.com
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
image/webp,image/apng,image/*,*/*;q=0.8
Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Cookie
__cfduid=d40330371a87683fa8593327455b40d011549333641; _ga=GA1.2.286613835.1549333644; _gid=GA1.2.705655925.1549333644; _gat=1
Connection
keep-alive
Cache-Control
no-cache
Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Tue, 05 Feb 2019 02:27:25 GMT
Content-Encoding
gzip
Transfer-Encoding
chunked
Suborigin
ipfs000bciqdppvbn7nafbplyzp3ebyr4lt6invk3d7nb6v4fyukskk7szleezy
X-Ipfs-Gateway-Host
cdn-bank2-ams1
Connection
keep-alive
Last-Modified
Thu, 01 Jan 1970 00:00:01 GMT
Server
cloudflare
Etag
W/"QmS6Fj9tCY7L7vSGvuzLcWbaN1fRNUgnFayB1jLnbXZMy8"
Vary
Accept-Encoding
Access-Control-Allow-Methods
GET, POST, OPTIONS
Content-Type
image/jpeg
Access-Control-Allow-Origin
*
Access-Control-Expose-Headers
Content-Range, X-Chunked-Output, X-Stream-Output
Cache-Control
public, max-age=29030400, immutable
X-Ipfs-Path
/ipfs/QmS6Fj9tCY7L7vSGvuzLcWbaN1fRNUgnFayB1jLnbXZMy8
CF-RAY
4a41f00fc5542360-FRA
Access-Control-Allow-Headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmQisgJZbTWE7sYCNFFvR5rnuUaU8SpDGHk9oNcD2E3nXt
cdn.thisjav.com/ipfs/
43 KB
43 KB
Image
General
Full URL
http://cdn.thisjav.com/ipfs/QmQisgJZbTWE7sYCNFFvR5rnuUaU8SpDGHk9oNcD2E3nXt
Requested by
Host: www.thisjav.com
URL: http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:32a3 , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
b062930743fff47542480873f29329d39fa7101a7f7a204685614cabf3805cc3

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
cdn.thisjav.com
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
image/webp,image/apng,image/*,*/*;q=0.8
Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Cookie
__cfduid=d40330371a87683fa8593327455b40d011549333641; _ga=GA1.2.286613835.1549333644; _gid=GA1.2.705655925.1549333644; _gat=1
Connection
keep-alive
Cache-Control
no-cache
Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Tue, 05 Feb 2019 02:27:26 GMT
Content-Encoding
gzip
Transfer-Encoding
chunked
Suborigin
ipfs000bciqcg2gqzzsnbfdhmhjnbhq6qjimrd5lngpbjpgp7kzwqpht7f6d3ey
X-Ipfs-Gateway-Host
cdn-bank1-ams1
Connection
keep-alive
Last-Modified
Thu, 01 Jan 1970 00:00:01 GMT
Server
cloudflare
Etag
W/"QmQisgJZbTWE7sYCNFFvR5rnuUaU8SpDGHk9oNcD2E3nXt"
Vary
Accept-Encoding
Access-Control-Allow-Methods
GET, POST, OPTIONS
Content-Type
image/jpeg
Access-Control-Allow-Origin
*
Access-Control-Expose-Headers
Content-Range, X-Chunked-Output, X-Stream-Output
Cache-Control
public, max-age=29030400, immutable
X-Ipfs-Path
/ipfs/QmQisgJZbTWE7sYCNFFvR5rnuUaU8SpDGHk9oNcD2E3nXt
CF-RAY
4a41f011a525637f-FRA
Access-Control-Allow-Headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmRhbmMiiyr6h5eCmXDhZPRs1EGYCXarsLQ6NmW3wrWijj
cdn.thisjav.com/ipfs/
41 KB
42 KB
Image
General
Full URL
http://cdn.thisjav.com/ipfs/QmRhbmMiiyr6h5eCmXDhZPRs1EGYCXarsLQ6NmW3wrWijj
Requested by
Host: www.thisjav.com
URL: http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:33a3 , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
88f50e135f03adf8d62ad4d460e7f99c53ea6f62c363d9d2af526e678327bacb

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
cdn.thisjav.com
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
image/webp,image/apng,image/*,*/*;q=0.8
Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Cookie
__cfduid=d40330371a87683fa8593327455b40d011549333641; _ga=GA1.2.286613835.1549333644; _gid=GA1.2.705655925.1549333644; _gat=1
Connection
keep-alive
Cache-Control
no-cache
Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Tue, 05 Feb 2019 02:27:25 GMT
Content-Encoding
gzip
Transfer-Encoding
chunked
Suborigin
ipfs000bciqdd4hn2xpiajcj3ubv57beoglwjqjtla4mjcj7uo5rvf5bdsftdsq
X-Ipfs-Gateway-Host
cdn-bank2-ams1
Connection
keep-alive
Last-Modified
Thu, 01 Jan 1970 00:00:01 GMT
Server
cloudflare
Etag
W/"QmRhbmMiiyr6h5eCmXDhZPRs1EGYCXarsLQ6NmW3wrWijj"
Vary
Accept-Encoding
Access-Control-Allow-Methods
GET, POST, OPTIONS
Content-Type
image/jpeg
Access-Control-Allow-Origin
*
Access-Control-Expose-Headers
Content-Range, X-Chunked-Output, X-Stream-Output
Cache-Control
public, max-age=29030400, immutable
X-Ipfs-Path
/ipfs/QmRhbmMiiyr6h5eCmXDhZPRs1EGYCXarsLQ6NmW3wrWijj
CF-RAY
4a41f011b78196e8-FRA
Access-Control-Allow-Headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmdbzgN7ebxPBAgySVquAuyu7A5zEnDxwSRt2AhQF1sz8P
cdn.thisjav.com/ipfs/
37 KB
37 KB
Image
General
Full URL
http://cdn.thisjav.com/ipfs/QmdbzgN7ebxPBAgySVquAuyu7A5zEnDxwSRt2AhQF1sz8P
Requested by
Host: www.thisjav.com
URL: http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:33a3 , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
dd8eb8631068f2799f923f35e8b5034693a69fa0efbdbc0d316bde9e707d86a8

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
cdn.thisjav.com
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
image/webp,image/apng,image/*,*/*;q=0.8
Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Cookie
__cfduid=d40330371a87683fa8593327455b40d011549333641; _ga=GA1.2.286613835.1549333644; _gid=GA1.2.705655925.1549333644; _gat=1
Connection
keep-alive
Cache-Control
no-cache
Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Tue, 05 Feb 2019 02:27:25 GMT
Content-Encoding
gzip
Transfer-Encoding
chunked
Suborigin
ipfs000bciqoftmytursdm6yk3i6zn3vnwjpjmacupgggm2bxihtas4ra2rwyaa
X-Ipfs-Gateway-Host
cdn-bank2-ams1
Connection
keep-alive
Last-Modified
Thu, 01 Jan 1970 00:00:01 GMT
Server
cloudflare
Etag
W/"QmdbzgN7ebxPBAgySVquAuyu7A5zEnDxwSRt2AhQF1sz8P"
Vary
Accept-Encoding
Access-Control-Allow-Methods
GET, POST, OPTIONS
Content-Type
image/jpeg
Access-Control-Allow-Origin
*
Access-Control-Expose-Headers
Content-Range, X-Chunked-Output, X-Stream-Output
Cache-Control
public, max-age=29030400, immutable
X-Ipfs-Path
/ipfs/QmdbzgN7ebxPBAgySVquAuyu7A5zEnDxwSRt2AhQF1sz8P
CF-RAY
4a41f011b5792360-FRA
Access-Control-Allow-Headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmQ4yBQAQXU9Fjm88cawt7cZjPkHZwCAXwfPmALNyFSYA2
cdn.thisjav.com/ipfs/
38 KB
39 KB
Image
General
Full URL
http://cdn.thisjav.com/ipfs/QmQ4yBQAQXU9Fjm88cawt7cZjPkHZwCAXwfPmALNyFSYA2
Requested by
Host: www.thisjav.com
URL: http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:33a3 , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
4d28ff98dfec0477d81cce7cc7cb5b3da78c1bfcde09110a66ac8f1ef9bf5d8f

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
cdn.thisjav.com
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
image/webp,image/apng,image/*,*/*;q=0.8
Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Cookie
__cfduid=d40330371a87683fa8593327455b40d011549333641; _ga=GA1.2.286613835.1549333644; _gid=GA1.2.705655925.1549333644; _gat=1
Connection
keep-alive
Cache-Control
no-cache
Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Tue, 05 Feb 2019 02:27:25 GMT
Content-Encoding
gzip
Transfer-Encoding
chunked
Suborigin
ipfs000bciqbtmxxgvc4ypp6tu3frik22bpgot6wuumjgsazcasrpxa7cz7yz3y
X-Ipfs-Gateway-Host
cdn-bank2-ams1
Connection
keep-alive
Last-Modified
Thu, 01 Jan 1970 00:00:01 GMT
Server
cloudflare
Etag
W/"QmQ4yBQAQXU9Fjm88cawt7cZjPkHZwCAXwfPmALNyFSYA2"
Vary
Accept-Encoding
Access-Control-Allow-Methods
GET, POST, OPTIONS
Content-Type
image/jpeg
Access-Control-Allow-Origin
*
Access-Control-Expose-Headers
Content-Range, X-Chunked-Output, X-Stream-Output
Cache-Control
public, max-age=29030400, immutable
X-Ipfs-Path
/ipfs/QmQ4yBQAQXU9Fjm88cawt7cZjPkHZwCAXwfPmALNyFSYA2
CF-RAY
4a41f011e78896e8-FRA
Access-Control-Allow-Headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmYduw3J4DRM3UV7tx6GpSmyVYVgN28KrLeA8LsW21UBLi
cdn.thisjav.com/ipfs/
36 KB
37 KB
Image
General
Full URL
http://cdn.thisjav.com/ipfs/QmYduw3J4DRM3UV7tx6GpSmyVYVgN28KrLeA8LsW21UBLi
Requested by
Host: www.thisjav.com
URL: http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:33a3 , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
bbcd95fd80a84a0807e074a1c523b852d74c14af6dbaadf91bb4d78507e39fb6

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
cdn.thisjav.com
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
image/webp,image/apng,image/*,*/*;q=0.8
Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Cookie
__cfduid=d40330371a87683fa8593327455b40d011549333641; _ga=GA1.2.286613835.1549333644; _gid=GA1.2.705655925.1549333644; _gat=1
Connection
keep-alive
Cache-Control
no-cache
Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Tue, 05 Feb 2019 02:27:25 GMT
Content-Encoding
gzip
Transfer-Encoding
chunked
Suborigin
ipfs000bciqjsahuvgrz726sy6n2eewa5gcfeo7cnimpz4kq2mhepu42udswn5y
X-Ipfs-Gateway-Host
cdn-bank2-ams1
Connection
keep-alive
Last-Modified
Thu, 01 Jan 1970 00:00:01 GMT
Server
cloudflare
Etag
W/"QmYduw3J4DRM3UV7tx6GpSmyVYVgN28KrLeA8LsW21UBLi"
Vary
Accept-Encoding
Access-Control-Allow-Methods
GET, POST, OPTIONS
Content-Type
image/jpeg
Access-Control-Allow-Origin
*
Access-Control-Expose-Headers
Content-Range, X-Chunked-Output, X-Stream-Output
Cache-Control
public, max-age=29030400, immutable
X-Ipfs-Path
/ipfs/QmYduw3J4DRM3UV7tx6GpSmyVYVgN28KrLeA8LsW21UBLi
CF-RAY
4a41f011e57e2360-FRA
Access-Control-Allow-Headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmcT6VTCdPdC6Fh1rBLfun5LoZigCQPXzAAL2Psu5p47Cf
cdn.thisjav.com/ipfs/
41 KB
42 KB
Image
General
Full URL
http://cdn.thisjav.com/ipfs/QmcT6VTCdPdC6Fh1rBLfun5LoZigCQPXzAAL2Psu5p47Cf
Requested by
Host: www.thisjav.com
URL: http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:33a3 , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
0e907ea01cfc00c0d11c152d0bd7c3be94b715a6e54c7a815c70bc266c8a5b1c

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
cdn.thisjav.com
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
image/webp,image/apng,image/*,*/*;q=0.8
Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Cookie
__cfduid=d40330371a87683fa8593327455b40d011549333641; _ga=GA1.2.286613835.1549333644; _gid=GA1.2.705655925.1549333644; _gat=1
Connection
keep-alive
Cache-Control
no-cache
Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Tue, 05 Feb 2019 02:27:25 GMT
Content-Encoding
gzip
Transfer-Encoding
chunked
Suborigin
ipfs000bciqndksa4clur4t2ilddwazs373ej6bqarbplq4pa2aohjoqzvhieza
X-Ipfs-Gateway-Host
cdn-bank2-ams1
Connection
keep-alive
Last-Modified
Thu, 01 Jan 1970 00:00:01 GMT
Server
cloudflare
Etag
W/"QmcT6VTCdPdC6Fh1rBLfun5LoZigCQPXzAAL2Psu5p47Cf"
Vary
Accept-Encoding
Access-Control-Allow-Methods
GET, POST, OPTIONS
Content-Type
image/jpeg
Access-Control-Allow-Origin
*
Access-Control-Expose-Headers
Content-Range, X-Chunked-Output, X-Stream-Output
Cache-Control
public, max-age=29030400, immutable
X-Ipfs-Path
/ipfs/QmcT6VTCdPdC6Fh1rBLfun5LoZigCQPXzAAL2Psu5p47Cf
CF-RAY
4a41f012d7ab96e8-FRA
Access-Control-Allow-Headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
ee6891339e.js
use.fontawesome.com/
9 KB
4 KB
Script
General
Full URL
https://use.fontawesome.com/ee6891339e.js
Requested by
Host: www.thisjav.com
URL: http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Protocol
H2
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
23.111.9.35 Phoenix, United States, ASN33438 (HIGHWINDS2 - Highwinds Network Group, Inc., US),
Reverse DNS
Software
NetDNA-cache/2.2 /
Resource Hash
d66b9abee05f2c104f168392322f11d642ff74a5d633f8e4740859b03521917f

Request headers

Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

date
Tue, 05 Feb 2019 02:27:23 GMT
content-encoding
gzip
last-modified
Tue, 08 Nov 2016 11:35:47 GMT
server
NetDNA-cache/2.2
x-amz-request-id
88C4A3F79A4C2B15
etag
W/"00ef272eb0251c5aa26e0dd1b30f0fcb"
x-cache
HIT
content-type
text/javascript
status
200
cache-control
max-age=0, private, must-revalidate
x-amz-id-2
wTe4fQQ26V6Wme86kGFtpfqsvddZS8xLSgQU+lO8+T6Ha8KKk8vmoI7z6qPC5ZVxYRM0YygVYwo=
jquery.min.js
ajax.googleapis.com/ajax/libs/jquery/3.1.1/
85 KB
30 KB
Script
General
Full URL
https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js
Requested by
Host: www.thisjav.com
URL: http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Protocol
H2
Security
TLS 1.2, ECDHE_ECDSA, AES_128_GCM
Server
2a00:1450:4001:809::200a , Ireland, ASN15169 (GOOGLE - Google LLC, US),
Reverse DNS
Software
sffe /
Resource Hash
85556761a8800d14ced8fcd41a6b8b26bf012d44a318866c0d81a62092efd9bf
Security Headers
Name Value
X-Content-Type-Options nosniff
X-Xss-Protection 1; mode=block

Request headers

User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Origin
http://www.thisjav.com

Response headers

date
Mon, 04 Feb 2019 18:55:27 GMT
content-encoding
gzip
x-content-type-options
nosniff
age
27116
status
200
alt-svc
quic=":443"; ma=2592000; v="44,43,39"
content-length
30244
x-xss-protection
1; mode=block
last-modified
Tue, 20 Dec 2016 18:17:03 GMT
server
sffe
vary
Accept-Encoding
content-type
text/javascript; charset=UTF-8
access-control-allow-origin
*
cache-control
public, max-age=31536000, stale-while-revalidate=2592000
accept-ranges
bytes
timing-allow-origin
*
expires
Tue, 04 Feb 2020 18:55:27 GMT
tether.min.js
cdnjs.cloudflare.com/ajax/libs/tether/1.3.7/js/
24 KB
7 KB
Script
General
Full URL
https://cdnjs.cloudflare.com/ajax/libs/tether/1.3.7/js/tether.min.js
Requested by
Host: www.thisjav.com
URL: http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Protocol
H2
Security
TLS 1.2, ECDHE_ECDSA, AES_128_GCM
Server
2606:4700::6813:c397 , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
ff9a470d98767efd5e6489b27e24e1b41e408382ea0e3ca2b6d4fb7cb8dd4fff
Security Headers
Name Value
Strict-Transport-Security max-age=15780000; includeSubDomains

Request headers

User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Origin
http://www.thisjav.com

Response headers

date
Tue, 05 Feb 2019 02:27:23 GMT
content-encoding
br
cf-cache-status
HIT
status
200
strict-transport-security
max-age=15780000; includeSubDomains
last-modified
Thu, 17 May 2018 09:25:49 GMT
server
cloudflare
etag
W/"5afd4a9d-6144"
expect-ct
max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
vary
Accept-Encoding
content-type
application/javascript
access-control-allow-origin
*
expires
Sun, 26 Jan 2020 02:27:23 GMT
cache-control
public, max-age=30672000
cf-ray
4a41f008a94ec2a1-FRA
served-in-seconds
0.001
bootstrap.min.js
maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.5/js/
44 KB
12 KB
Script
General
Full URL
https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.5/js/bootstrap.min.js
Requested by
Host: www.thisjav.com
URL: http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Protocol
H2
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
209.197.3.15 Phoenix, United States, ASN20446 (HIGHWINDS3 - Highwinds Network Group, Inc., US),
Reverse DNS
vip0x00f.map2.ssl.hwcdn.net
Software
/
Resource Hash
8fe5ebbe44388c9f7d1e3d2924a3ebea4d110a0c430d24ecdcf06a2eb5f610c7

Request headers

User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Origin
http://www.thisjav.com

Response headers

date
Tue, 05 Feb 2019 02:27:23 GMT
content-encoding
gzip
last-modified
Wed, 12 Dec 2018 18:33:52 GMT
access-control-allow-origin
*
etag
"1544639632"
vary
Accept-Encoding
x-cache
HIT
content-type
text/javascript; charset=utf-8
status
200
cache-control
public, max-age=31536000
x-hello-human
Say hello back! @getBootstrapCDN on Twitter
accept-ranges
bytes
timing-allow-origin
*
content-length
11690
video.min.js
vjs.zencdn.net/5.4.6/
237 KB
56 KB
Script
General
Full URL
http://vjs.zencdn.net/5.4.6/video.min.js
Requested by
Host: www.thisjav.com
URL: http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Protocol
HTTP/1.1
Server
2a04:4e42::729 , European Union, ASN54113 (FASTLY - Fastly, US),
Reverse DNS
Software
/
Resource Hash
9ff6922b326eccf9fb2c2eb6170e4f268e02d2ed4272ece521de1b29333d9ec0

Request headers

Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Tue, 05 Feb 2019 02:27:23 GMT
Content-Encoding
gzip
Last-Modified
Fri, 08 Jan 2016 00:33:38 GMT
ETag
"9e9ef74b182ca5c04b9e1dc07401f945"
Vary
Accept-Encoding
X-Cache
HIT
Content-Type
application/javascript; charset=utf-8
Access-Control-Allow-Origin
*
Cache-Control
public, max-age=31536000
X-Cache-Hits
7735
Connection
keep-alive
Timing-Allow-Origin
*
Content-Length
57190
X-Served-By
cache-fra19125-FRA
owl.carousel.min.js
www.thisjav.com/static/owl-carousel/
23 KB
7 KB
Script
General
Full URL
http://www.thisjav.com/static/owl-carousel/owl.carousel.min.js
Requested by
Host: www.thisjav.com
URL: http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:32a3 , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
e0e2bc4e1d3ee5024c4e1aa58a6cad9aa42fc63a8c89ce18013a1c8f2b94875c

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
www.thisjav.com
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
*/*
Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Cookie
__cfduid=d40330371a87683fa8593327455b40d011549333641; csrftoken=BjvtPUvN1fcMc7sGIVu1zQEbntETDP09YbHk9JvbpCQpcK3y0vDP30CMbtokuwOg
Connection
keep-alive
Cache-Control
no-cache
Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Tue, 05 Feb 2019 02:27:23 GMT
Content-Encoding
gzip
CF-Cache-Status
REVALIDATED
Last-Modified
Mon, 05 Dec 2016 11:13:09 GMT
Server
cloudflare
ETag
W/"58454bc5-5d52"
Vary
Accept-Encoding
Content-Type
application/javascript
Cache-Control
public, max-age=14400
Transfer-Encoding
chunked
Connection
keep-alive
CF-RAY
4a41f00895c36397-FRA
Expires
Tue, 05 Feb 2019 06:27:23 GMT
analytics.js
www.google-analytics.com/
43 KB
17 KB
Script
General
Full URL
https://www.google-analytics.com/analytics.js
Requested by
Host: www.thisjav.com
URL: http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Protocol
H2
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
2a00:1450:4001:821::200e , Ireland, ASN15169 (GOOGLE - Google LLC, US),
Reverse DNS
Software
Golfe2 /
Resource Hash
3e552578c7d450b023f2cd9d28f830be4335c3acc6c4ab6dadda0769f09e5f22
Security Headers
Name Value
Strict-Transport-Security max-age=10886400; includeSubDomains; preload
X-Content-Type-Options nosniff

Request headers

Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

strict-transport-security
max-age=10886400; includeSubDomains; preload
content-encoding
gzip
x-content-type-options
nosniff
last-modified
Wed, 16 Jan 2019 20:01:45 GMT
server
Golfe2
age
2296
date
Tue, 05 Feb 2019 01:49:07 GMT
vary
Accept-Encoding
content-type
text/javascript
status
200
cache-control
public, max-age=7200
timing-allow-origin
*
alt-svc
quic=":443"; ma=2592000; v="44,43,39"
content-length
17543
expires
Tue, 05 Feb 2019 03:49:07 GMT
truncated
/
67 KB
0
Script
General
Full URL
data:truncated
Protocol
DATA
Server
-, , ASN (),
Reverse DNS
Software
/
Resource Hash
94872d2b59ab34deb6ba065a72f7259e97e18c65cd1b115e8d4e096c32e92d58

Request headers

Response headers

Content-Type
text/plain
1Ptgg87LROyAm3Kz-C8CSKlv.woff2
fonts.gstatic.com/s/anton/v9/
8 KB
9 KB
Font
General
Full URL
https://fonts.gstatic.com/s/anton/v9/1Ptgg87LROyAm3Kz-C8CSKlv.woff2
Requested by
Host: www.thisjav.com
URL: http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Protocol
H2
Security
TLS 1.2, ECDHE_ECDSA, AES_128_GCM
Server
2a00:1450:4016:80d::2003 , Ireland, ASN15169 (GOOGLE - Google LLC, US),
Reverse DNS
Software
sffe /
Resource Hash
1fcb86d36811576627fc31b30bc683e5bad72f13e4bc9fae2616d44c018fed62
Security Headers
Name Value
X-Content-Type-Options nosniff
X-Xss-Protection 1; mode=block

Request headers

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

Response headers

date
Tue, 29 Jan 2019 02:39:45 GMT
x-content-type-options
nosniff
last-modified
Tue, 10 Oct 2017 23:07:18 GMT
server
sffe
age
604058
content-type
font/woff2
status
200
alt-svc
quic=":443"; ma=2592000; v="44,43,39"
cache-control
public, max-age=31536000
accept-ranges
bytes
timing-allow-origin
*
access-control-allow-origin
*
content-length
8596
x-xss-protection
1; mode=block
expires
Wed, 29 Jan 2020 02:39:45 GMT
Cookie set ads-iframe-display.php
syndication.exosrv.com/ Frame 9C97
0
0
Document
General
Full URL
http://syndication.exosrv.com/ads-iframe-display.php?idzone=2961076&type=300x250&p=http%3A//www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/&dt=1549333643642&sub=&tags=&screen_resolution=1600x1200&el=
Requested by
Host: ads.exosrv.com
URL: https://ads.exosrv.com/ads.js
Protocol
HTTP/1.1
Server
95.211.229.247 , Netherlands, ASN60781 (LEASEWEB-NL-AMS-01 Netherlands, NL),
Reverse DNS
Software
nginx /
Resource Hash

Request headers

Host
syndication.exosrv.com
Connection
keep-alive
Pragma
no-cache
Cache-Control
no-cache
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Accept-Encoding
gzip, deflate
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/

Response headers

Server
nginx
Date
Tue, 05 Feb 2019 02:27:23 GMT
Content-Type
text/html; charset=utf-8
Transfer-Encoding
chunked
Connection
keep-alive
Expires
Mon, 26 Jul 1997 05:00:00 GMT
Cache-Control
no-cache, must-revalidate
Pragma
no-cache
P3P
CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"
Set-Cookie
__uvt=a%3A1%3A%7Bi%3A0%3Bs%3A31%3A%225c58f48ba61769.4778643426491055%22%3B%7D; expires=Thu, 04-Feb-2021 02:27:23 GMT; Max-Age=63072000; domain=exosrv.com impressions=x%9CK%B42%B4%AA%CE%B42%B202037%B0N%B42%06q%0D%AC3%AD%0Ca%D8%D4%C4%D2%D8%D8%D8%CC%C4%18%C81%B2.%B62%B1R2411P%B2%AE%AD%05%00%F8%E6%0F%CC; expires=Wed, 06-Feb-2019 02:27:23 GMT; Max-Age=86400; path=/; domain=.exosrv.com
Content-Encoding
gzip
Cookie set ads-iframe-display.php
syndication.exosrv.com/ Frame 628E
0
0
Document
General
Full URL
http://syndication.exosrv.com/ads-iframe-display.php?idzone=2961078&type=300x250&p=http%3A//www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/&dt=1549333643644&sub=&tags=&screen_resolution=1600x1200&el=
Requested by
Host: ads.exosrv.com
URL: https://ads.exosrv.com/ads.js
Protocol
HTTP/1.1
Server
95.211.229.247 , Netherlands, ASN60781 (LEASEWEB-NL-AMS-01 Netherlands, NL),
Reverse DNS
Software
nginx /
Resource Hash

Request headers

Host
syndication.exosrv.com
Connection
keep-alive
Pragma
no-cache
Cache-Control
no-cache
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Accept-Encoding
gzip, deflate
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/

Response headers

Server
nginx
Date
Tue, 05 Feb 2019 02:27:23 GMT
Content-Type
text/html; charset=utf-8
Transfer-Encoding
chunked
Connection
keep-alive
Expires
Mon, 26 Jul 1997 05:00:00 GMT
Cache-Control
no-cache, must-revalidate
Pragma
no-cache
P3P
CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"
Set-Cookie
__uvt=a%3A1%3A%7Bi%3A0%3Bs%3A32%3A%225c58f48ba62670.63638245509127871%22%3B%7D; expires=Thu, 04-Feb-2021 02:27:23 GMT; Max-Age=63072000; domain=exosrv.com impressions=x%9CK%B42%B4%AA%CE%B42%B202037%B0N%B42%06q%0D%AC3%AD%0Ca%D8%D4%C4%D2%D8%D8%D8%CC%C4%18%C81%B2.%B62%B1R2411P%B2%AE%AD%05%00%F8%E6%0F%CC; expires=Wed, 06-Feb-2019 02:27:23 GMT; Max-Age=86400; path=/; domain=.exosrv.com
Content-Encoding
gzip
Cookie set ads-iframe-display.php
syndication.exosrv.com/ Frame 3920
0
0
Document
General
Full URL
http://syndication.exosrv.com/ads-iframe-display.php?idzone=2961080&type=300x250&p=http%3A//www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/&dt=1549333643647&sub=&tags=&screen_resolution=1600x1200&el=
Requested by
Host: ads.exosrv.com
URL: https://ads.exosrv.com/ads.js
Protocol
HTTP/1.1
Server
95.211.229.246 , Netherlands, ASN60781 (LEASEWEB-NL-AMS-01 Netherlands, NL),
Reverse DNS
Software
nginx /
Resource Hash

Request headers

Host
syndication.exosrv.com
Connection
keep-alive
Pragma
no-cache
Cache-Control
no-cache
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Accept-Encoding
gzip, deflate
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/

Response headers

Server
nginx
Date
Tue, 05 Feb 2019 02:27:23 GMT
Content-Type
text/html; charset=utf-8
Transfer-Encoding
chunked
Connection
keep-alive
Expires
Mon, 26 Jul 1997 05:00:00 GMT
Cache-Control
no-cache, must-revalidate
Pragma
no-cache
P3P
CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"
Set-Cookie
__uvt=a%3A1%3A%7Bi%3A0%3Bs%3A33%3A%225c58f48ba80b68.991409302260591416%22%3B%7D; expires=Thu, 04-Feb-2021 02:27:23 GMT; Max-Age=63072000; domain=exosrv.com impressions=x%9CK%B42%B4%AA%CE%B42%B202037%B0N%B42%06q%0D%AC3%AD%0Ca%D8%D4%C4%D2%D8%D8%D8%CC%C4%18%C81%B2.%B62%B1R2411P%B2%AE%AD%05%00%F8%E6%0F%CC; expires=Wed, 06-Feb-2019 02:27:23 GMT; Max-Age=86400; path=/; domain=.exosrv.com
Content-Encoding
gzip
NOZAq20HCpo
openload.co/embed/ Frame BCB8
0
0
Document
General
Full URL
https://openload.co/embed/NOZAq20HCpo
Requested by
Host: www.thisjav.com
URL: http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Protocol
H2
Security
TLS 1.2, ECDHE_ECDSA, AES_128_GCM
Server
2606:4700::6810:a632 , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash

Request headers

:method
GET
:authority
openload.co
:scheme
https
:path
/embed/NOZAq20HCpo
pragma
no-cache
cache-control
no-cache
upgrade-insecure-requests
1
user-agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
accept
text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
accept-encoding
gzip, deflate, br
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/

Response headers

status
200
date
Tue, 05 Feb 2019 02:27:23 GMT
content-type
text/html; charset=UTF-8
set-cookie
__cfduid=d546c24dcbb33fe5315e1a3ec1ce4cf5d1549333643; expires=Wed, 05-Feb-20 02:27:23 GMT; path=/; domain=.openload.co; HttpOnly _olbknd=w4; path=/
cache-control
private
expect-ct
max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
server
cloudflare
cf-ray
4a41f0091dac636d-FRA
content-encoding
gzip
Cookie set ads-iframe-display.php
syndication.exoclick.com/ Frame 6C14
0
0
Document
General
Full URL
http://syndication.exoclick.com/ads-iframe-display.php?idzone=2574945&type=728x90&p=http%3A//www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/&dt=1549333643700&sub=&tags=&screen_resolution=1600x1200&el=
Requested by
Host: ads.exoclick.com
URL: https://ads.exoclick.com/ads.js
Protocol
HTTP/1.1
Server
95.211.229.246 , Netherlands, ASN60781 (LEASEWEB-NL-AMS-01 Netherlands, NL),
Reverse DNS
Software
nginx /
Resource Hash

Request headers

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

Response headers

Server
nginx
Date
Tue, 05 Feb 2019 02:27:23 GMT
Content-Type
text/html; charset=utf-8
Transfer-Encoding
chunked
Connection
keep-alive
Expires
Mon, 26 Jul 1997 05:00:00 GMT
Cache-Control
no-cache, must-revalidate
Pragma
no-cache
P3P
CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"
Set-Cookie
__uvt=a%3A1%3A%7Bi%3A0%3Bs%3A32%3A%225c58f48bb44bd0.70496386951115409%22%3B%7D; expires=Thu, 04-Feb-2021 02:27:23 GMT; Max-Age=63072000; domain=exoclick.com impressions=x%9CK%B42%B4%AA%CE%B42210%B40%B1%B0N%B42%06q%0D%AC3%AD%0Ca%D8%D4%C4%D2%D8%D8%D8%CC%C4%18%C81%B2.%B62%B1R2411P%B2%AE%AD%05%00%F90%0F%CE; expires=Wed, 06-Feb-2019 02:27:23 GMT; Max-Age=86400; path=/; domain=.exoclick.com
Content-Encoding
gzip
Cookie set ads-iframe-display.php
syndication.exoclick.com/ Frame 084A
0
0
Document
General
Full URL
http://syndication.exoclick.com/ads-iframe-display.php?idzone=2354395&type=300x100&p=http%3A//www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/&dt=1549333643704&sub=&tags=&screen_resolution=1600x1200&el=
Requested by
Host: ads.exoclick.com
URL: https://ads.exoclick.com/ads.js
Protocol
HTTP/1.1
Server
95.211.229.247 , Netherlands, ASN60781 (LEASEWEB-NL-AMS-01 Netherlands, NL),
Reverse DNS
Software
nginx /
Resource Hash

Request headers

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

Response headers

Server
nginx
Date
Tue, 05 Feb 2019 02:27:23 GMT
Content-Type
text/html; charset=utf-8
Transfer-Encoding
chunked
Connection
keep-alive
Expires
Mon, 26 Jul 1997 05:00:00 GMT
Cache-Control
no-cache, must-revalidate
Pragma
no-cache
P3P
CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"
Set-Cookie
__uvt=a%3A1%3A%7Bi%3A0%3Bs%3A33%3A%225c58f48bb633b6.209429923175239424%22%3B%7D; expires=Thu, 04-Feb-2021 02:27:23 GMT; Max-Age=63072000; domain=exoclick.com impressions=x%9C5%C7%B1%11%00%10%10%04%C0%5ET%F0%EF%8E%19%F7%D5%08%C5B%A3w%04%82%0D%B6%CB%B5%862%8D%CD%18%5Dx%B5%18%F2%AF%B0%01%A8%C4M%8E%29%2A9i%29%F6%3E%F8s%0F%CA; expires=Wed, 06-Feb-2019 02:27:23 GMT; Max-Age=86400; path=/; domain=.exoclick.com
Content-Encoding
gzip
Qmb2FAn4MPko8Xdy1wfJJyTSUAHZ43Yk3ex6xPuSE1czbH
cdn.thisjav.com/ipfs/
26 KB
27 KB
Image
General
Full URL
http://cdn.thisjav.com/ipfs/Qmb2FAn4MPko8Xdy1wfJJyTSUAHZ43Yk3ex6xPuSE1czbH
Requested by
Host: www.thisjav.com
URL: http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:33a3 , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
bd600953b5e2430f5aabd30f75cb88c2f3d1a51be55af79f937a5e2a62b0b8ae

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
cdn.thisjav.com
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
image/webp,image/apng,image/*,*/*;q=0.8
Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Cookie
__cfduid=d40330371a87683fa8593327455b40d011549333641; _ga=GA1.2.286613835.1549333644; _gid=GA1.2.705655925.1549333644; _gat=1
Connection
keep-alive
Cache-Control
no-cache
Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Tue, 05 Feb 2019 02:27:25 GMT
Content-Encoding
gzip
Transfer-Encoding
chunked
Suborigin
ipfs000bciqly4g3zfq35lcpe3ev5momu4ocy2hc3drzx7rdtwqvaiqql676pia
X-Ipfs-Gateway-Host
cdn-bank2-ams1
Connection
keep-alive
Last-Modified
Thu, 01 Jan 1970 00:00:01 GMT
Server
cloudflare
Etag
W/"Qmb2FAn4MPko8Xdy1wfJJyTSUAHZ43Yk3ex6xPuSE1czbH"
Vary
Accept-Encoding
Access-Control-Allow-Methods
GET, POST, OPTIONS
Content-Type
image/jpeg
Access-Control-Allow-Origin
*
Access-Control-Expose-Headers
Content-Range, X-Chunked-Output, X-Stream-Output
Cache-Control
public, max-age=29030400, immutable
X-Ipfs-Path
/ipfs/Qmb2FAn4MPko8Xdy1wfJJyTSUAHZ43Yk3ex6xPuSE1czbH
CF-RAY
4a41f01415ba2360-FRA
Access-Control-Allow-Headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
Cookie set ads-iframe-display.php
syndication.exoclick.com/ Frame FDD9
0
0
Document
General
Full URL
http://syndication.exoclick.com/ads-iframe-display.php?idzone=2574949&type=728x90&p=http%3A//www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/&dt=1549333643726&sub=&tags=&screen_resolution=1600x1200&el=
Requested by
Host: ads.exoclick.com
URL: https://ads.exoclick.com/ads.js
Protocol
HTTP/1.1
Server
95.211.229.246 , Netherlands, ASN60781 (LEASEWEB-NL-AMS-01 Netherlands, NL),
Reverse DNS
Software
nginx /
Resource Hash

Request headers

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

Response headers

Server
nginx
Date
Tue, 05 Feb 2019 02:27:23 GMT
Content-Type
text/html; charset=utf-8
Transfer-Encoding
chunked
Connection
keep-alive
Expires
Mon, 26 Jul 1997 05:00:00 GMT
Cache-Control
no-cache, must-revalidate
Pragma
no-cache
P3P
CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"
Set-Cookie
__uvt=a%3A1%3A%7Bi%3A0%3Bs%3A32%3A%225c58f48bba5de7.75810824940062530%22%3B%7D; expires=Thu, 04-Feb-2021 02:27:23 GMT; Max-Age=63072000; domain=exoclick.com impressions=x%9CK%B42%B4%AA%CE%B42210%B40%B1%B0N%B42%06q%0D%AC3%AD%0Ca%D8%D4%C4%D2%D8%D8%D8%CC%C4%18%C81%B2.%B62%B1R2411P%B2%AE%AD%05%00%F90%0F%CE; expires=Wed, 06-Feb-2019 02:27:23 GMT; Max-Age=86400; path=/; domain=.exoclick.com
Content-Encoding
gzip
Cookie set ads-iframe-display.php
syndication.exoclick.com/ Frame 5C7B
0
0
Document
General
Full URL
http://syndication.exoclick.com/ads-iframe-display.php?idzone=2354397&type=300x100&p=http%3A//www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/&dt=1549333643728&sub=&tags=&screen_resolution=1600x1200&el=
Requested by
Host: ads.exoclick.com
URL: https://ads.exoclick.com/ads.js
Protocol
HTTP/1.1
Server
95.211.229.246 , Netherlands, ASN60781 (LEASEWEB-NL-AMS-01 Netherlands, NL),
Reverse DNS
Software
nginx /
Resource Hash

Request headers

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

Response headers

Server
nginx
Date
Tue, 05 Feb 2019 02:27:23 GMT
Content-Type
text/html; charset=utf-8
Transfer-Encoding
chunked
Connection
keep-alive
Expires
Mon, 26 Jul 1997 05:00:00 GMT
Cache-Control
no-cache, must-revalidate
Pragma
no-cache
P3P
CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"
Set-Cookie
__uvt=a%3A1%3A%7Bi%3A0%3Bs%3A32%3A%225c58f48bba5ca2.67016108186941007%22%3B%7D; expires=Thu, 04-Feb-2021 02:27:23 GMT; Max-Age=63072000; domain=exoclick.com impressions=x%9C5%C7%B1%11%00%10%10%04%C0%5ET%F0%EF%8E%19%F7%D5%08%C5B%A3w%04%82%0D%B6%CB%B5%862%8D%CD%18%5Dx%B5%18%F2%AF%B0%01%A8%C4M%8E%29%2A9i%29%F6%3E%F8s%0F%CA; expires=Wed, 06-Feb-2019 02:27:23 GMT; Max-Age=86400; path=/; domain=.exoclick.com
Content-Encoding
gzip
embed.js
wwwthisjavcom.disqus.com/
Redirect Chain
  • http://wwwthisjavcom.disqus.com/embed.js
  • https://wwwthisjavcom.disqus.com/embed.js
65 KB
22 KB
Script
General
Full URL
https://wwwthisjavcom.disqus.com/embed.js
Requested by
Host: www.thisjav.com
URL: http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
151.101.120.134 San Francisco, United States, ASN54113 (FASTLY - Fastly, US),
Reverse DNS
Software
openresty /
Resource Hash
25a0f8d50bd83be4e211c522bbfa953423d1db44641fc48a499b4581fa5e0670
Security Headers
Name Value
Strict-Transport-Security max-age=300; includeSubdomains

Request headers

Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Tue, 05 Feb 2019 02:27:24 GMT
Content-Encoding
gzip
Server
openresty
Age
0
Vary
Accept-Encoding
Strict-Transport-Security
max-age=300; includeSubdomains
Content-Type
application/javascript; charset=utf-8
Cache-Control
private, max-age=60
X-Service
router
Connection
keep-alive
Link
<https://disqus.com>; rel=preconnect, <https://c.disquscdn.com>; rel=preconnect
Content-Length
21780

Redirect headers

Date
Tue, 05 Feb 2019 02:27:23 GMT
Server
Varnish
Strict-Transport-Security
max-age=300; includeSubdomains
Content-Type
text/html
Location
https://wwwthisjavcom.disqus.com/embed.js
Cache-Control
public, max-age=31536000
Connection
close
Link
<https://disqus.com>; rel=preconnect, <https://c.disquscdn.com>; rel=preconnect
Content-Length
219
Cookie set ads-iframe-display.php
syndication.exoclick.com/ Frame DE21
0
0
Document
General
Full URL
http://syndication.exoclick.com/ads-iframe-display.php?idzone=2574931&type=728x90&p=http%3A//www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/&dt=1549333643730&sub=&tags=&screen_resolution=1600x1200&el=
Requested by
Host: ads.exoclick.com
URL: https://ads.exoclick.com/ads.js
Protocol
HTTP/1.1
Server
95.211.229.247 , Netherlands, ASN60781 (LEASEWEB-NL-AMS-01 Netherlands, NL),
Reverse DNS
Software
nginx /
Resource Hash

Request headers

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

Response headers

Server
nginx
Date
Tue, 05 Feb 2019 02:27:23 GMT
Content-Type
text/html; charset=utf-8
Transfer-Encoding
chunked
Connection
keep-alive
Expires
Mon, 26 Jul 1997 05:00:00 GMT
Cache-Control
no-cache, must-revalidate
Pragma
no-cache
P3P
CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"
Set-Cookie
__uvt=a%3A1%3A%7Bi%3A0%3Bs%3A33%3A%225c58f48bbd3115.350332311690963347%22%3B%7D; expires=Thu, 04-Feb-2021 02:27:23 GMT; Max-Age=63072000; domain=exoclick.com impressions=x%9CK%B42%B4%AA%CE%B42210%B40%B1%B0N%B42%06q%0D%AC3%AD%0Ca%D8%D4%C4%D2%D8%D8%D8%CC%C4%18%C81%B2.%B62%B1R2411P%B2%AE%AD%05%00%F90%0F%CE; expires=Wed, 06-Feb-2019 02:27:23 GMT; Max-Age=86400; path=/; domain=.exoclick.com
Content-Encoding
gzip
Cookie set ads-iframe-display.php
syndication.exoclick.com/ Frame E9F9
0
0
Document
General
Full URL
http://syndication.exoclick.com/ads-iframe-display.php?idzone=2354399&type=300x100&p=http%3A//www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/&dt=1549333643735&sub=&tags=&screen_resolution=1600x1200&el=
Requested by
Host: ads.exoclick.com
URL: https://ads.exoclick.com/ads.js
Protocol
HTTP/1.1
Server
95.211.229.247 , Netherlands, ASN60781 (LEASEWEB-NL-AMS-01 Netherlands, NL),
Reverse DNS
Software
nginx /
Resource Hash

Request headers

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

Response headers

Server
nginx
Date
Tue, 05 Feb 2019 02:27:23 GMT
Content-Type
text/html; charset=utf-8
Transfer-Encoding
chunked
Connection
keep-alive
Expires
Mon, 26 Jul 1997 05:00:00 GMT
Cache-Control
no-cache, must-revalidate
Pragma
no-cache
P3P
CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"
Set-Cookie
__uvt=a%3A1%3A%7Bi%3A0%3Bs%3A33%3A%225c58f48bbd23a6.409422842880512201%22%3B%7D; expires=Thu, 04-Feb-2021 02:27:23 GMT; Max-Age=63072000; domain=exoclick.com impressions=x%9C5%C7%B1%11%00%10%10%04%C0%5ET%F0%EF%8E%19%F7%D5%08%C5B%A3w%04%82%0D%B6%CB%B5%862%8D%CD%18%5Dx%B5%18%F2%AF%B0%01%A8%C4M%8E%29%2A9i%29%F6%3E%F8s%0F%CA; expires=Wed, 06-Feb-2019 02:27:23 GMT; Max-Age=86400; path=/; domain=.exoclick.com
Content-Encoding
gzip
Cookie set ads-iframe-display.php
syndication.exoclick.com/ Frame B282
0
0
Document
General
Full URL
http://syndication.exoclick.com/ads-iframe-display.php?idzone=2574953&type=300x250&p=http%3A//www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/&dt=1549333643737&sub=&tags=&screen_resolution=1600x1200&el=
Requested by
Host: ads.exoclick.com
URL: https://ads.exoclick.com/ads.js
Protocol
HTTP/1.1
Server
95.211.229.247 , Netherlands, ASN60781 (LEASEWEB-NL-AMS-01 Netherlands, NL),
Reverse DNS
Software
nginx /
Resource Hash

Request headers

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

Response headers

Server
nginx
Date
Tue, 05 Feb 2019 02:27:23 GMT
Content-Type
text/html; charset=utf-8
Transfer-Encoding
chunked
Connection
keep-alive
Expires
Mon, 26 Jul 1997 05:00:00 GMT
Cache-Control
no-cache, must-revalidate
Pragma
no-cache
P3P
CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"
Set-Cookie
__uvt=a%3A1%3A%7Bi%3A0%3Bs%3A33%3A%225c58f48bc118f7.908861972811476088%22%3B%7D; expires=Thu, 04-Feb-2021 02:27:23 GMT; Max-Age=63072000; domain=exoclick.com
Content-Encoding
gzip
collect
www.google-analytics.com/r/
35 B
101 B
Image
General
Full URL
https://www.google-analytics.com/r/collect?v=1&_v=j73&a=757091116&t=pageview&_s=1&dl=http%3A%2F%2Fwww.thisjav.com%2Fzh-hant%2Fvideo%2F19CdW3Pk%2Fvdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23%2F&ul=en-us&de=UTF-8&dt=VDD-096%20%E3%81%BF%E3%81%8A%E3%82%8A%E8%88%9E%20-%20%E3%82%A8%E3%83%AC%E3%83%99%E3%83%BC%E3%82%BF%E3%83%BC%E3%82%AC%E3%83%BC%E3%83%ABin%E2%80%A6%20%EF%BC%BB%E8%84%85%E8%BF%AB%E3%82%B9%E3%82%A4%E3%83%BC%E3%83%88%E3%83%AB%E3%83%BC%E3%83%A0%EF%BC%BD%20Elevator%20Girl%20Mai%EF%BC%8823%EF%BC%89%20%7C%20ThisJAV%20-%20%E4%B8%96%E7%95%8C%E7%AC%AC%E4%B8%80%E6%88%90%E4%BA%BA%E7%B6%B2%E7%AB%99&sd=24-bit&sr=1600x1200&vp=1585x1200&je=0&_u=IEBAAEAB~&jid=554626132&gjid=1250075789&cid=286613835.1549333644&tid=UA-88560054-1&_gid=705655925.1549333644&_r=1&z=2127940158
Requested by
Host: www.thisjav.com
URL: http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Protocol
H2
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
2a00:1450:4001:821::200e , Ireland, ASN15169 (GOOGLE - Google LLC, US),
Reverse DNS
Software
Golfe2 /
Resource Hash
8337212354871836e6763a41e615916c89bac5b3f1f0adf60ba43c7c806e1015
Security Headers
Name Value
X-Content-Type-Options nosniff

Request headers

Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

pragma
no-cache
date
Tue, 05 Feb 2019 02:27:23 GMT
x-content-type-options
nosniff
last-modified
Sun, 17 May 1998 03:00:00 GMT
server
Golfe2
access-control-allow-origin
*
content-type
image/gif
status
200
cache-control
no-cache, no-store, must-revalidate
alt-svc
quic=":443"; ma=2592000; v="44,43,39"
content-length
35
expires
Fri, 01 Jan 1990 00:00:00 GMT
crypta.js
statdynamic.com/lib/
697 KB
98 KB
Script
General
Full URL
http://statdynamic.com/lib/crypta.js
Requested by
Host: www.thisjav.com
URL: http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Protocol
HTTP/1.1
Server
2606:4700:30::681b:a41e , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
66fb37f0a348652be4f1afc6bd5bbfa1de656d8ed495d3ddd9c19fa84d448cb1

Request headers

Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Tue, 05 Feb 2019 02:27:23 GMT
Content-Encoding
gzip
CF-Cache-Status
HIT
Last-Modified
Tue, 20 Nov 2018 00:08:45 GMT
Server
cloudflare
ETag
W/"1170220006"
Vary
Accept-Encoding
Content-Type
text/javascript
Access-Control-Allow-Origin
*
Cache-Control
public, max-age=14400
Transfer-Encoding
chunked
Connection
keep-alive
CF-RAY
4a41f00a22a196e2-FRA
Expires
Tue, 05 Feb 2019 06:27:23 GMT
pop.js
cdn.popcash.net/
64 KB
26 KB
Script
General
Full URL
http://cdn.popcash.net/pop.js
Requested by
Host: www.thisjav.com
URL: http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Protocol
HTTP/1.1
Server
94.31.29.128 , United Kingdom, ASN33438 (HIGHWINDS2 - Highwinds Network Group, Inc., US),
Reverse DNS
94.31.29.128.IPYX-077437-ZYO.above.net
Software
NetDNA-cache/2.2 /
Resource Hash
b4221c88c806b7201fef40ea006fde86282b2a93a1be048dcfd45b5b1f736160

Request headers

Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Tue, 05 Feb 2019 02:27:23 GMT
Content-Encoding
gzip
Last-Modified
Tue, 04 Dec 2018 13:11:11 GMT
Server
NetDNA-cache/2.2
ETag
W/"5c067cef-10155"
Vary
Accept-Encoding
X-Cache
HIT
Content-Type
application/javascript
Cache-Control
max-age=86400
Transfer-Encoding
chunked
Connection
keep-alive
CF-RAY
483e88b704e8c297-FRA
Expires
Wed, 06 Feb 2019 02:27:23 GMT
pixel.js
ca.clcknads.pro/v1/
1 KB
682 B
Script
General
Full URL
https://ca.clcknads.pro/v1/pixel.js
Requested by
Host: www.thisjav.com
URL: http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Protocol
H2
Security
TLS 1.2, ECDHE_RSA, AES_256_GCM
Server
88.208.59.100 , Netherlands, ASN39572 (ADVANCEDHOSTERS-AS, NL),
Reverse DNS
Software
nginx /
Resource Hash
940310a1112acc00ad5248d807cfdd39cefd8b310ec734f14fa3a488caae36d4

Request headers

Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

date
Tue, 05 Feb 2019 02:27:23 GMT
content-encoding
gzip
referrer-policy
unsafe-url
server
nginx
access-control-allow-origin
*
vary
Accept-Encoding
content-type
text/plain; charset=utf-8
status
200
access-control-max-age
86400
access-control-allow-credentials
true
Cookie set ads-iframe-display.php
syndication.exoclick.com/ Frame 1641
0
0
Document
General
Full URL
http://syndication.exoclick.com/ads-iframe-display.php?idzone=2353949&type=300x250&p=http%3A//www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/&dt=1549333643829&sub=&tags=&screen_resolution=1600x1200&el=
Requested by
Host: ads.exoclick.com
URL: https://ads.exoclick.com/ads.js
Protocol
HTTP/1.1
Server
95.211.229.246 , Netherlands, ASN60781 (LEASEWEB-NL-AMS-01 Netherlands, NL),
Reverse DNS
Software
nginx /
Resource Hash

Request headers

Host
syndication.exoclick.com
Connection
keep-alive
Pragma
no-cache
Cache-Control
no-cache
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Accept-Encoding
gzip, deflate
Cookie
impressions=x%9CK%B42%B4%AA%CE%B42210%B40%B1%B0N%B42%06q%0D%AC3%AD%0Ca%D8%D4%C4%D2%D8%D8%D8%CC%C4%18%C81%B2.%B62%B1R2411P%B2%AE%AD%05%00%F90%0F%CE; __uvt=a%3A1%3A%7Bi%3A0%3Bs%3A32%3A%225c58f48bba5de7.75810824940062530%22%3B%7D
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/

Response headers

Server
nginx
Date
Tue, 05 Feb 2019 02:27:23 GMT
Content-Type
text/html; charset=utf-8
Transfer-Encoding
chunked
Connection
keep-alive
Expires
Mon, 26 Jul 1997 05:00:00 GMT
Cache-Control
no-cache, must-revalidate
Pragma
no-cache
P3P
CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"
Set-Cookie
__uvt=a%3A1%3A%7Bi%3A0%3Bs%3A32%3A%225c58f48bba5de7.75810824940062530%22%3B%7D; expires=Thu, 04-Feb-2021 02:27:23 GMT; Max-Age=63072000; domain=exoclick.com impressions=x%9CK%B42%B2%AA%CE%B42210%B40%B1%B0N%B42%06q%0D%AC3%AD%0Ca%D8%D4%C4%D2%D8%D8%D8%CC%C4%18%C81%B2.%B62%B1R2411P%B2%AE%05%F2-%8C%0C%CC%CC%0DH%D4W%0B%00%F1%BB%1D%9C; expires=Wed, 06-Feb-2019 02:27:23 GMT; Max-Age=86400; path=/; domain=.exoclick.com
Content-Encoding
gzip
Cookie set ads-iframe-display.php
syndication.exoclick.com/ Frame 9501
0
0
Document
General
Full URL
http://syndication.exoclick.com/ads-iframe-display.php?idzone=2353951&type=300x250&p=http%3A//www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/&dt=1549333643831&sub=&tags=&screen_resolution=1600x1200&el=
Requested by
Host: ads.exoclick.com
URL: https://ads.exoclick.com/ads.js
Protocol
HTTP/1.1
Server
95.211.229.247 , Netherlands, ASN60781 (LEASEWEB-NL-AMS-01 Netherlands, NL),
Reverse DNS
Software
nginx /
Resource Hash

Request headers

Host
syndication.exoclick.com
Connection
keep-alive
Pragma
no-cache
Cache-Control
no-cache
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Accept-Encoding
gzip, deflate
Cookie
impressions=x%9CK%B42%B4%AA%CE%B42210%B40%B1%B0N%B42%06q%0D%AC3%AD%0Ca%D8%D4%C4%D2%D8%D8%D8%CC%C4%18%C81%B2.%B62%B1R2411P%B2%AE%AD%05%00%F90%0F%CE; __uvt=a%3A1%3A%7Bi%3A0%3Bs%3A33%3A%225c58f48bbd3115.350332311690963347%22%3B%7D
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/

Response headers

Server
nginx
Date
Tue, 05 Feb 2019 02:27:23 GMT
Content-Type
text/html; charset=utf-8
Transfer-Encoding
chunked
Connection
keep-alive
Expires
Mon, 26 Jul 1997 05:00:00 GMT
Cache-Control
no-cache, must-revalidate
Pragma
no-cache
P3P
CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"
Set-Cookie
__uvt=a%3A1%3A%7Bi%3A0%3Bs%3A33%3A%225c58f48bbd3115.350332311690963347%22%3B%7D; expires=Thu, 04-Feb-2021 02:27:23 GMT; Max-Age=63072000; domain=exoclick.com impressions=x%9CK%B42%B2%AA%CE%B42210%B40%B1%B0N%B42%06q%0D%AC3%AD%0Ca%D8%D4%C4%D2%D8%D8%D8%CC%C4%18%C81%B2.%B62%B1R2411P%B2%AE%05%F2-%8C%0C%CC%CC%0DH%D4W%0B%00%F1%BB%1D%9C; expires=Wed, 06-Feb-2019 02:27:23 GMT; Max-Age=86400; path=/; domain=.exoclick.com
Content-Encoding
gzip
Cookie set ads-iframe-display.php
syndication.exoclick.com/ Frame 4548
0
0
Document
General
Full URL
http://syndication.exoclick.com/ads-iframe-display.php?idzone=2353953&type=300x250&p=http%3A//www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/&dt=1549333643837&sub=&tags=&screen_resolution=1600x1200&el=
Requested by
Host: ads.exoclick.com
URL: https://ads.exoclick.com/ads.js
Protocol
HTTP/1.1
Server
95.211.229.246 , Netherlands, ASN60781 (LEASEWEB-NL-AMS-01 Netherlands, NL),
Reverse DNS
Software
nginx /
Resource Hash

Request headers

Host
syndication.exoclick.com
Connection
keep-alive
Pragma
no-cache
Cache-Control
no-cache
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Accept-Encoding
gzip, deflate
Cookie
impressions=x%9CK%B42%B4%AA%CE%B42210%B40%B1%B0N%B42%06q%0D%AC3%AD%0Ca%D8%D4%C4%D2%D8%D8%D8%CC%C4%18%C81%B2.%B62%B1R2411P%B2%AE%AD%05%00%F90%0F%CE; __uvt=a%3A1%3A%7Bi%3A0%3Bs%3A33%3A%225c58f48bbd3115.350332311690963347%22%3B%7D
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/

Response headers

Server
nginx
Date
Tue, 05 Feb 2019 02:27:23 GMT
Content-Type
text/html; charset=utf-8
Transfer-Encoding
chunked
Connection
keep-alive
Expires
Mon, 26 Jul 1997 05:00:00 GMT
Cache-Control
no-cache, must-revalidate
Pragma
no-cache
P3P
CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"
Set-Cookie
__uvt=a%3A1%3A%7Bi%3A0%3Bs%3A33%3A%225c58f48bbd3115.350332311690963347%22%3B%7D; expires=Thu, 04-Feb-2021 02:27:23 GMT; Max-Age=63072000; domain=exoclick.com impressions=x%9CK%B42%B2%AA%CE%B42210%B40%B1%B0N%B42%06q%0D%AC3%AD%0Ca%D8%D4%C4%D2%D8%D8%D8%CC%C4%18%C81%B2.%B62%B1R2411P%B2%AE%05%F2-%8C%0C%CC%CC%0DH%D4W%0B%00%F1%BB%1D%9C; expires=Wed, 06-Feb-2019 02:27:23 GMT; Max-Age=86400; path=/; domain=.exoclick.com
Content-Encoding
gzip
ee6891339e.css
use.fontawesome.com/
1 KB
685 B
Stylesheet
General
Full URL
https://use.fontawesome.com/ee6891339e.css
Requested by
Host: use.fontawesome.com
URL: https://use.fontawesome.com/ee6891339e.js
Protocol
H2
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
23.111.9.35 Phoenix, United States, ASN33438 (HIGHWINDS2 - Highwinds Network Group, Inc., US),
Reverse DNS
Software
NetDNA-cache/2.2 /
Resource Hash
414ab94a7cfdd2de43bb1dc22cd27919af39167060cc463b2383874735bf109f

Request headers

Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

date
Tue, 05 Feb 2019 02:27:23 GMT
content-encoding
gzip
last-modified
Tue, 08 Nov 2016 11:35:47 GMT
server
NetDNA-cache/2.2
x-amz-request-id
F3E72EA9849FC7F0
etag
W/"36eacf2509458cae9722de237a90cd6d"
x-cache
HIT
content-type
text/css
status
200
cache-control
max-age=0, private, must-revalidate
x-amz-id-2
xN4Xpg5yMU4NRmMAFoSDKd4GWuemhB8oTjTrSygiKJjyRw/rdEPsEv5zQSLoYZvV/11hDedUGiw=
font-awesome-css.min.css
use.fontawesome.com/releases/v4.7.0/css/
30 KB
8 KB
Stylesheet
General
Full URL
https://use.fontawesome.com/releases/v4.7.0/css/font-awesome-css.min.css
Requested by
Host: www.thisjav.com
URL: http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Protocol
H2
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
23.111.9.35 Phoenix, United States, ASN33438 (HIGHWINDS2 - Highwinds Network Group, Inc., US),
Reverse DNS
Software
NetDNA-cache/2.2 /
Resource Hash
5b9573e1023da775390e9284ec0eb1c606df9b468a28980055b4a6aa804f4350

Request headers

Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

date
Tue, 05 Feb 2019 02:27:23 GMT
content-encoding
gzip
last-modified
Tue, 25 Oct 2016 17:21:58 GMT
server
NetDNA-cache/2.2
access-control-allow-origin
*
etag
W/"36082410df2ef7f83932219089dc1443"
vary
Origin, Access-Control-Request-Headers, Access-Control-Request-Method, Accept-Encoding
access-control-allow-methods
GET
content-type
text/css
status
200
access-control-max-age
3000
cache-control
max-age=31556926
x-cache
HIT
fontawesome-webfont.woff2
use.fontawesome.com/releases/v4.7.0/fonts/
75 KB
76 KB
Font
General
Full URL
https://use.fontawesome.com/releases/v4.7.0/fonts/fontawesome-webfont.woff2
Requested by
Host: use.fontawesome.com
URL: https://use.fontawesome.com/ee6891339e.js
Protocol
H2
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
23.111.9.35 Phoenix, United States, ASN33438 (HIGHWINDS2 - Highwinds Network Group, Inc., US),
Reverse DNS
Software
NetDNA-cache/2.2 /
Resource Hash
2adefcbc041e7d18fcf2d417879dc5a09997aa64d675b7a3c4b6ce33da13f3fe

Request headers

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

Response headers

date
Tue, 05 Feb 2019 02:27:23 GMT
last-modified
Mon, 17 Jul 2017 16:24:59 GMT
server
NetDNA-cache/2.2
access-control-allow-origin
*
etag
"af7ae505a9eed503f8b8e6982036873e"
vary
Origin, Access-Control-Request-Headers, Access-Control-Request-Method, Accept-Encoding
access-control-allow-methods
GET
content-type
application/font-woff2
status
200
access-control-max-age
3000
cache-control
max-age=31556926
x-cache
HIT
accept-ranges
bytes
content-length
77160
7f84b5c1-2eb9-4e05-a222-26c04fb98706
http://www.thisjav.com/
0
0

7f84b5c1-2eb9-4e05-a222-26c04fb98706
http://www.thisjav.com/
0
0

7f84b5c1-2eb9-4e05-a222-26c04fb98706
http://www.thisjav.com/
0
0

7f84b5c1-2eb9-4e05-a222-26c04fb98706
http://www.thisjav.com/
0
0

7f84b5c1-2eb9-4e05-a222-26c04fb98706
http://www.thisjav.com/
0
0

7f84b5c1-2eb9-4e05-a222-26c04fb98706
http://www.thisjav.com/
0
0

7f84b5c1-2eb9-4e05-a222-26c04fb98706
http://www.thisjav.com/
0
0

7f84b5c1-2eb9-4e05-a222-26c04fb98706
http://www.thisjav.com/
0
0

znWaa3gu
dcba.popcash.net/
0
117 B
XHR
General
Full URL
https://dcba.popcash.net/znWaa3gu
Requested by
Host: cdn.popcash.net
URL: http://cdn.popcash.net/pop.js
Protocol
H2
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
52.4.72.68 Ashburn, United States, ASN14618 (AMAZON-AES - Amazon.com, Inc., US),
Reverse DNS
ec2-52-4-72-68.compute-1.amazonaws.com
Software
/
Resource Hash
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

Request headers

User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Origin
http://www.thisjav.com

Response headers

status
204
pragma
no-cache
date
Tue, 05 Feb 2019 02:27:24 GMT
cache-control
no-cache, no-store, must-revalidate
access-control-allow-origin
*
expires
0
pop.js
c1.popads.net/
71 KB
28 KB
Script
General
Full URL
http://c1.popads.net/pop.js
Requested by
Host: www.thisjav.com
URL: http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Protocol
HTTP/1.1
Server
195.181.170.18 , United Kingdom, ASN60068 (CDN77, GB),
Reverse DNS
frankfurt-15.cdn77.com
Software
CDN77-Turbo /
Resource Hash
d1ae5f5431e8793c9a91cc08574a682d0465a3e06cbad6ac51eefbe5f8ebf568

Request headers

User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Origin
http://www.thisjav.com

Response headers

Date
Tue, 05 Feb 2019 02:27:24 GMT
Content-Encoding
gzip
Last-Modified
Mon, 04 Feb 2019 00:41:38 GMT
Server
CDN77-Turbo
X-Edge-Location
frankfurtDE
ETag
W/"5c578a42-11d8e"
Transfer-Encoding
chunked
X-Cache
HIT
Content-Type
application/javascript
Access-Control-Allow-Origin
*
Cache-Control
max-age=604800
X-Edge-IP
195.181.170.15
Connection
keep-alive
X-Age
92023
Expires
Mon, 11 Feb 2019 00:53:41 GMT
f.png
ca.clcknads.pro/v1/pt/NjQ2Zjc0MmU2MzZmNmQ%3D/
68 B
323 B
Image
General
Full URL
https://ca.clcknads.pro/v1/pt/NjQ2Zjc0MmU2MzZmNmQ%3D/f.png
Requested by
Host: www.thisjav.com
URL: http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Protocol
H2
Security
TLS 1.2, ECDHE_RSA, AES_256_GCM
Server
88.208.59.100 , Netherlands, ASN39572 (ADVANCEDHOSTERS-AS, NL),
Reverse DNS
Software
nginx /
Resource Hash
63ef318d96b5d0d0ceba6e04a4e622b1158335cdc67c49e27839132c6f655058

Request headers

Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

date
Tue, 05 Feb 2019 02:27:24 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
truncated
/
4 KB
0
Media
General
Full URL
data:truncated
Protocol
DATA
Server
-, , ASN (),
Reverse DNS
Software
/
Resource Hash
a27edba0e34b2648a90a800ae94fdef3e39016d1b9bd6e54a31ede1f1cddfed0

Request headers

Response headers

Content-Type
video/mp4
23167
ca.clcknads.pro/v2/a/vsl/vst/
5 KB
3 KB
XHR
General
Full URL
http://ca.clcknads.pro/v2/a/vsl/vst/23167?subId=&playerWidth=426&playerHeight=239&pageUri=http%3A%2F%2Fwww.thisjav.com%2Fzh-hant%2Fvideo%2F19CdW3Pk%2Fvdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23%2F&referer=&wgl=0
Requested by
Host: ca.clcknads.pro
URL: http://ca.clcknads.pro/v1/a/23167/js
Protocol
HTTP/1.1
Server
88.208.59.100 , Netherlands, ASN39572 (ADVANCEDHOSTERS-AS, NL),
Reverse DNS
Software
nginx /
Resource Hash
c473df59254bce8379d30c7ad70593f4228f9ce9c0ea33b3f12be1c9790c50f4

Request headers

User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Origin
http://www.thisjav.com

Response headers

Date
Tue, 05 Feb 2019 02:27:24 GMT
Content-Encoding
gzip
Referrer-Policy
unsafe-url
Server
nginx
Vary
Accept-Encoding
Content-Type
application/xml; charset=UTF-8
Access-Control-Allow-Origin
http://www.thisjav.com
Access-Control-Max-Age
86400
Access-Control-Allow-Credentials
true
Connection
keep-alive
Transfer-Encoding
chunked
preroll.engine
engine.phn.doublepimp.com/
6 KB
2 KB
XHR
General
Full URL
https://engine.phn.doublepimp.com/preroll.engine?id=52a55c19-4bba-4caf-a1b1-c19d0ecc8ed5&zid=9276&pageurl=https%3A%2F%2Fsexu.com&subId=104740&pw=0&ph=0
Requested by
Host: ca.clcknads.pro
URL: http://ca.clcknads.pro/v1/a/23167/js
Protocol
H2
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
69.89.69.120 El Segundo, United States, ASN558 (NNEXT - NV Next LLC, US),
Reverse DNS
Software
Microsoft-IIS/10.0 / ASP.NET
Resource Hash
209c466284a803d69c526deb2926a0eaa59e86c12ba6fc3b8e35cc67c2e74457

Request headers

User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Origin
http://www.thisjav.com

Response headers

date
Tue, 05 Feb 2019 02:27:24 GMT
content-encoding
gzip
server
Microsoft-IIS/10.0
status
200
x-powered-by
ASP.NET
vary
Accept-Encoding
p3p
CP="CAO PSA OUR IND"
access-control-allow-origin
http://www.thisjav.com
cache-control
private
access-control-allow-credentials
true
content-type
text/xml; charset=utf-8
content-length
1638
/
c.adsco.re/
5 B
404 B
Script
General
Full URL
http://c.adsco.re/
Requested by
Host: c1.popads.net
URL: http://c1.popads.net/pop.js
Protocol
HTTP/1.1
Server
2606:4700::6811:a6ba , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
a6bdfcd47d10e9491b11ac64c8000b525b1dfb3d7590668bc4637f05a50f183b

Request headers

Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Tue, 05 Feb 2019 02:27:24 GMT
Server
cloudflare
Vary
Accept-Encoding
Content-Type
text/plain;charset=UTF-8
Cache-Control
max-age=259200,public,immutable
Connection
keep-alive
CF-RAY
4a41f00ca3f9275c-FRA
Content-Length
5
lounge.d49f53e192b9080ef8880a7c9b24f1c3.css
c.disquscdn.com/next/embed/styles/
102 KB
19 KB
Stylesheet
General
Full URL
https://c.disquscdn.com/next/embed/styles/lounge.d49f53e192b9080ef8880a7c9b24f1c3.css
Requested by
Host: wwwthisjavcom.disqus.com
URL: https://wwwthisjavcom.disqus.com/embed.js
Protocol
H2
Security
TLS 1.2, ECDHE_ECDSA, AES_128_GCM
Server
2606:4700::6810:4ea6 , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
a8d842dc045c65986e7b50952261d47b62cab35c5829700e90d1965ec11692e3
Security Headers
Name Value
Strict-Transport-Security max-age=300; includeSubdomains
X-Content-Type-Options nosniff
X-Xss-Protection 1; mode=block

Request headers

Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

date
Tue, 05 Feb 2019 02:27:24 GMT
content-encoding
gzip
x-content-type-options
nosniff
cf-cache-status
HIT
cf-ray
4a41f00cfb59c2c4-FRA
status
200
vary
Accept-Encoding
content-length
19425
x-xss-protection
1; mode=block
last-modified
Fri, 26 Oct 2018 00:31:19 GMT
server
cloudflare
cache-control
max-age=31536000, public, immutable, no-transform
etag
"5bd26057-4be1"
expect-ct
max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
strict-transport-security
max-age=300; includeSubdomains
content-type
text/css; charset=utf-8
access-control-allow-origin
*
fastly-debug-digest
eb1006ce43d6cade1496acb1e51569c1d94dd6f363a0a4e497669b5cee0f6289
accept-ranges
bytes
timing-allow-origin
*
expires
Sat, 26 Oct 2019 18:02:22 GMT
common.bundle.725e5c32c7072b4c17f23bf9fff6ac9a.js
c.disquscdn.com/next/embed/
243 KB
81 KB
Script
General
Full URL
https://c.disquscdn.com/next/embed/common.bundle.725e5c32c7072b4c17f23bf9fff6ac9a.js
Requested by
Host: wwwthisjavcom.disqus.com
URL: https://wwwthisjavcom.disqus.com/embed.js
Protocol
H2
Security
TLS 1.2, ECDHE_ECDSA, AES_128_GCM
Server
2606:4700::6810:4ea6 , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
f30258528fe92de2b010ac8190b77cbb722b9c45f9c7521b1af06b53324fc56c
Security Headers
Name Value
Strict-Transport-Security max-age=300; includeSubdomains
X-Content-Type-Options nosniff
X-Xss-Protection 1; mode=block

Request headers

Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

date
Tue, 05 Feb 2019 02:27:24 GMT
content-encoding
gzip
x-content-type-options
nosniff
cf-cache-status
HIT
cf-ray
4a41f00cfb5ac2c4-FRA
status
200
vary
Accept-Encoding
content-length
82968
x-xss-protection
1; mode=block
last-modified
Mon, 04 Feb 2019 21:51:31 GMT
server
cloudflare
cache-control
max-age=31536000, public, immutable, no-transform
etag
"5c58b3e3-14418"
expect-ct
max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
strict-transport-security
max-age=300; includeSubdomains
content-type
application/javascript; charset=utf-8
access-control-allow-origin
*
fastly-debug-digest
4e046dbfd066e01c55a524400e469dc0350da078077096d317a7b5ffc795371d
accept-ranges
bytes
timing-allow-origin
*
expires
Tue, 04 Feb 2020 22:31:09 GMT
lounge.bundle.cc94b29f9dce7c0ab5182ca581ac27bb.js
c.disquscdn.com/next/embed/
385 KB
100 KB
Script
General
Full URL
https://c.disquscdn.com/next/embed/lounge.bundle.cc94b29f9dce7c0ab5182ca581ac27bb.js
Requested by
Host: wwwthisjavcom.disqus.com
URL: https://wwwthisjavcom.disqus.com/embed.js
Protocol
H2
Security
TLS 1.2, ECDHE_ECDSA, AES_128_GCM
Server
2606:4700::6810:4ea6 , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
dfdce7f4353d8bba19b1fa630a23856e9fbb2c5aca5fb89bede321ac6d5a9cbb
Security Headers
Name Value
Strict-Transport-Security max-age=300; includeSubdomains
X-Content-Type-Options nosniff
X-Xss-Protection 1; mode=block

Request headers

Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

date
Tue, 05 Feb 2019 02:27:24 GMT
content-encoding
gzip
x-content-type-options
nosniff
cf-cache-status
HIT
cf-ray
4a41f00cfb5bc2c4-FRA
status
200
vary
Accept-Encoding
content-length
101657
x-xss-protection
1; mode=block
last-modified
Mon, 04 Feb 2019 21:51:31 GMT
server
cloudflare
cache-control
max-age=31536000, public, immutable, no-transform
etag
"5c58b3e3-18d19"
expect-ct
max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
strict-transport-security
max-age=300; includeSubdomains
content-type
application/javascript; charset=utf-8
access-control-allow-origin
*
fastly-debug-digest
f00389d4ee83f9463e8c84162f0f21ce1a63e39688fc9298fb3e83c40a87a603
accept-ranges
bytes
timing-allow-origin
*
expires
Tue, 04 Feb 2020 22:31:09 GMT
config.js
disqus.com/next/
6 KB
3 KB
Script
General
Full URL
https://disqus.com/next/config.js
Requested by
Host: wwwthisjavcom.disqus.com
URL: https://wwwthisjavcom.disqus.com/embed.js
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
151.101.128.134 San Francisco, United States, ASN54113 (FASTLY - Fastly, US),
Reverse DNS
Software
nginx /
Resource Hash
7abbf02ffa23039d495aef38fd9956bb01f63dbbe4b734c3947cd1296667ec9f
Security Headers
Name Value
Strict-Transport-Security max-age=300; includeSubdomains
X-Content-Type-Options nosniff
X-Frame-Options SAMEORIGIN
X-Xss-Protection 1; mode=block

Request headers

Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Tue, 05 Feb 2019 02:27:24 GMT
Content-Encoding
gzip
X-Content-Type-Options
nosniff
Age
20
p3p
CP="DSP IDC CUR ADM DELi STP NAV COM UNI INT PHY DEM"
Connection
keep-alive
Content-Length
2562
X-XSS-Protection
1; mode=block
Server
nginx
X-Frame-Options
SAMEORIGIN
Vary
Accept-Encoding
Strict-Transport-Security
max-age=300; includeSubdomains
Content-Type
application/javascript; charset=UTF-8
Access-Control-Allow-Origin
*
Cache-Control
public, stale-while-revalidate=300, s-stalewhilerevalidate=3600, max-age=60
Timing-Allow-Origin
*
/
disqus.com/embed/comments/ Frame 226A
0
0
Document
General
Full URL
https://disqus.com/embed/comments/?base=default&f=wwwthisjavcom&t_u=http%3A%2F%2Fwww.thisjav.com%2Fzh-hant%2Fvideo%2F19CdW3Pk%2Fvdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23%2F&t_d=VDD-096%20%E3%81%BF%E3%81%8A%E3%82%8A%E8%88%9E%20-%20%E3%82%A8%E3%83%AC%E3%83%99%E3%83%BC%E3%82%BF%E3%83%BC%E3%82%AC%E3%83%BC%E3%83%ABin%E2%80%A6%20%EF%BC%BB%E8%84%85%E8%BF%AB%E3%82%B9%E3%82%A4%E3%83%BC%E3%83%88%E3%83%AB%E3%83%BC%E3%83%A0%EF%BC%BD%20Elevator%20Girl%20Mai%EF%BC%8823%EF%BC%89&t_t=VDD-096%20%E3%81%BF%E3%81%8A%E3%82%8A%E8%88%9E%20-%20%E3%82%A8%E3%83%AC%E3%83%99%E3%83%BC%E3%82%BF%E3%83%BC%E3%82%AC%E3%83%BC%E3%83%ABin%E2%80%A6%20%EF%BC%BB%E8%84%85%E8%BF%AB%E3%82%B9%E3%82%A4%E3%83%BC%E3%83%88%E3%83%AB%E3%83%BC%E3%83%A0%EF%BC%BD%20Elevator%20Girl%20Mai%EF%BC%8823%EF%BC%89&s_o=default
Requested by
Host: wwwthisjavcom.disqus.com
URL: https://wwwthisjavcom.disqus.com/embed.js
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
151.101.128.134 San Francisco, United States, ASN54113 (FASTLY - Fastly, US),
Reverse DNS
Software
nginx /
Resource Hash
Security Headers
Name Value
Content-Security-Policy script-src https://*.twitter.com:* https://www.gstatic.com/recaptcha/ https://a.disquscdn.com https://c.disquscdn.com c.disquscdn.com https://*.services.disqus.com:* https://cdn.boomtrain.com/p13n/ 'unsafe-inline' https://cdn.syndication.twimg.com/tweets.json https://connect.facebook.net/en_US/sdk.js https://referrer.disqus.com/juggler/ https://apis.google.com https://www.google.com/recaptcha/ https://disqus.com
Strict-Transport-Security max-age=300; includeSubdomains
X-Content-Type-Options nosniff
X-Xss-Protection 1; mode=block

Request headers

Host
disqus.com
Connection
keep-alive
Pragma
no-cache
Cache-Control
no-cache
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Accept-Encoding
gzip, deflate, br
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/

Response headers

Server
nginx
Content-Type
text/html; charset=utf-8
Content-Security-Policy
script-src https://*.twitter.com:* https://www.gstatic.com/recaptcha/ https://a.disquscdn.com https://c.disquscdn.com c.disquscdn.com https://*.services.disqus.com:* https://cdn.boomtrain.com/p13n/ 'unsafe-inline' https://cdn.syndication.twimg.com/tweets.json https://connect.facebook.net/en_US/sdk.js https://referrer.disqus.com/juggler/ https://apis.google.com https://www.google.com/recaptcha/ https://disqus.com
Last-Modified
Wed, 18 Jul 2018 07:34:34 GMT
ETag
W/"lounge:view:6241141753.c54e70c4f97a74c5b9f7fe7a98ee2e6c.2"
Link
<https://c.disquscdn.com>;rel=preconnect,<https://c.disquscdn.com>;rel=dns-prefetch
Cache-Control
stale-if-error=3600, s-stalewhilerevalidate=3600, stale-while-revalidate=30, no-cache, must-revalidate, public, s-maxage=5
p3p
CP="DSP IDC CUR ADM DELi STP NAV COM UNI INT PHY DEM"
Timing-Allow-Origin
*
X-Content-Type-Options
nosniff
X-XSS-Protection
1; mode=block
Content-Encoding
gzip
Content-Length
2748
Date
Tue, 05 Feb 2019 02:27:24 GMT
Age
0
Connection
keep-alive
Vary
Accept-Encoding
Strict-Transport-Security
max-age=300; includeSubdomains
c
serve.popads.net/
44 B
259 B
Script
General
Full URL
http://serve.popads.net/c?_=1549333644&v=4&siteId=1636876&minBid=&popundersPerIP=9&blockedCountries=&documentRef=&s=1600,1200,1,1600,1200
Requested by
Host: c1.popads.net
URL: http://c1.popads.net/pop.js
Protocol
HTTP/1.1
Server
216.21.13.17 , United States, ASN53334 (TUT-AS - Total Uptime Technologies, LLC, US),
Reverse DNS
Software
/
Resource Hash
9d781128a8ece413b003d5612b8398bf9340ef7f5b751d12bd125ba523d3ceb5

Request headers

Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
User-Agent
Mozilla/5.0 (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
Tue, 05 Feb 2019 02:27:24 GMT
PopAds-EC
ASM
Connection
Keep-Alive
Accept-Ranges
bytes
Content-Length
44
Content-Type
text/javascript;charset=UTF-8
v3
pt.ptawe.com/vast/
4 KB
5 KB
XHR
General
Full URL
https://pt.ptawe.com/vast/v3?psid=ed_sexuvs1&utm_source=netwkclckne&utm_medium=network&ms_notrack=1&noc=1
Requested by
Host: ca.clcknads.pro
URL: http://ca.clcknads.pro/v1/a/23167/js
Protocol
H2
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
93.93.51.191 , Luxembourg, ASN34655 (DOCLER-AS, HU),
Reverse DNS
Software
unknown /
Resource Hash
dbfa65639ab1fdc6fd96d6210929797cccc4ec717a5e32c9344444ccac839cba

Request headers

User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Origin
http://www.thisjav.com

Response headers

date
Tue, 05 Feb 2019 02:27:24 GMT
server
unknown
status
200
content-type
text/xml; charset=utf-8
access-control-allow-origin
http://www.thisjav.com
cache-control
no-cache
access-control-allow-credentials
true
x-real-source
-
80d9b7b11d05a91c1cebaac5cb5e427c.mp4
galleryn0.awemwh.com/f8d2e11bd6c43618af00d6f28c91232a14/
32 KB
0
Media
General
Full URL
https://galleryn0.awemwh.com/f8d2e11bd6c43618af00d6f28c91232a14/80d9b7b11d05a91c1cebaac5cb5e427c.mp4
Requested by
Host: www.thisjav.com
URL: http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Protocol
H2
Security
TLS 1.2, ECDHE_RSA, AES_256_GCM
Server
93.93.51.190 , Luxembourg, ASN34655 (DOCLER-AS, HU),
Reverse DNS
Software
nginx /
Resource Hash
Security Headers
Name Value
X-Content-Type-Options nosniff

Request headers

Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Accept-Encoding
identity;q=1, *;q=0
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Range
bytes=0-
chrome-proxy
frfr

Response headers

date
Tue, 05 Feb 2019 02:27:24 GMT
x-content-type-options
nosniff
last-modified
Mon, 12 Mar 2018 13:02:14 GMT
server
nginx
etag
"ed0c31cff67e6519f4106f5a2fa313f6"
status
206
content-type
video/mp4
Content-Range
bytes 0-1947945/1947946
cache-control
max-age=1209600, public
Content-Length
1947946
expires
Tue, 19 Feb 2019 02:27:24 GMT
truncated
/
2 KB
0
Image
General
Full URL
data:truncated
Protocol
DATA
Server
-, , ASN (),
Reverse DNS
Software
/
Resource Hash
9d02d662da8a47fb5fb610b545007507b6017028043dbb63cd09ec897d3b9627

Request headers

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

Response headers

Content-Type
image/png
80d9b7b11d05a91c1cebaac5cb5e427c.mp4
galleryn0.awemwh.com/f8d2e11bd6c43618af00d6f28c91232a14/
46 KB
47 KB
Media
General
Full URL
https://galleryn0.awemwh.com/f8d2e11bd6c43618af00d6f28c91232a14/80d9b7b11d05a91c1cebaac5cb5e427c.mp4
Requested by
Host: www.thisjav.com
URL: http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Protocol
H2
Security
TLS 1.2, ECDHE_RSA, AES_256_GCM
Server
93.93.51.190 , Luxembourg, ASN34655 (DOCLER-AS, HU),
Reverse DNS
Software
nginx /
Resource Hash
77507fb2c0290277f546178ea3d1a0002fcdf19be490fe5eed268e9e245d029c
Security Headers
Name Value
X-Content-Type-Options nosniff

Request headers

Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
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=1900544-

Response headers

date
Tue, 05 Feb 2019 02:27:24 GMT
x-content-type-options
nosniff
last-modified
Mon, 12 Mar 2018 13:02:14 GMT
server
nginx
etag
"ed0c31cff67e6519f4106f5a2fa313f6"
status
206
content-type
video/mp4
Content-Range
bytes 1900544-1947945/1947946
cache-control
max-age=1209600, public
Content-Length
47402
expires
Tue, 19 Feb 2019 02:27:24 GMT
track.engine
engine.phn.doublepimp.com/
0
3 KB
Image
General
Full URL
http://engine.phn.doublepimp.com/track.engine?dcid=3_ctx_fbdef80a-a154-4a6f-8eac-41bfc7217b7f&evt=3&evtData=%7b%22am%22%3anull%2c%22EventType%22%3a3%2c%22v2%22%3anull%2c%22v%22%3a%22jL2k7_8kXjng2fOs2fWvEDgG__GwAlWt_RbZYa1iAHpRxuouZBhY-vkqvo93S-Ft5kxAdurpgWXkFCyKjWbJM7ah-MtkkY_GjEdfgmaWWDaGkogDimsOo5RWJn-PIzT2AYHgnOUD6lbWYG5mXA2zS8UsTMvUJVFoVW2oG6YKIywrsjxsNpUHfJciZ9PwBUaI86D3wQ-efJbC3i0MbYAToHcZkkVzHGPw22Dl-tcvnMZ4JDb8mwdw80PY6lzey63M6ZTKKmAS9T0vR2Ai8jGGf1cKsecWD7tyZ5i3qYFsuorz8flbtXFT0FpHaR0jXtr7eTgRyJrEKwqFyhTe7pphQEV_7oZmitQnL1DI3L12G9c6bG60CzmPna4pMWrCbLRCtpkh6ScNXgVgx92V9b7w4O3jQtSJ2SaisEqCV5MgbDDSk-5uzLJhP4P2EoaATWnsbl61QaXrFmptI1M8PI18yiyWYQzr07AKYUCz5tciu5FTIB9jTEub1l-A62VX_-RBwwQNsS9V16iQTiBl9C618zaZDVF-wEcAfODeGbVxlM5aPycRy5riUrGcZgwfYks7ifptbw84UTRCwUfD_2lpzRG6XB05Lkpg_sN12SsCHK8LSho1CE2uV4_PLunv7O9ddFc_yx_doBkYbr7_fyPq_x9fHOantVm60xQIEx7b_NlgEMHeIZgMze_lSE5Hz0o2_cr08MA9pXwB-jP2K1-dsjpmhYQwoJoddCyOgY76ahvyT2xd-eV9LnqlyTSpUQnu3c22Rl0YlF0wZh23g56oSR_PCAbdqBE4EE4fbx1YVOK51pYRJrAVS1jPZ6J6C8wZ0%22%7d
Requested by
Host: www.thisjav.com
URL: http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Protocol
HTTP/1.1
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
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

Request headers

Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Tue, 05 Feb 2019 02:27:24 GMT
Server
Microsoft-IIS/10.0
X-Powered-By
ASP.NET
P3P
CP="CAO PSA OUR IND"
Access-Control-Allow-Origin
http://engine.phn.doublepimp.com:8890
Cache-Control
private
Access-Control-Allow-Credentials
true
Content-Length
0
hTi.gif
pt.ptawe.com/45j40/
43 B
309 B
Image
General
Full URL
http://pt.ptawe.com/45j40/hTi.gif?pstool=401_1&psid=ed_sexuvs1&utm_source=netwkclckne&utm_medium=network&noc=1
Requested by
Host: www.thisjav.com
URL: http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Protocol
HTTP/1.1
Server
93.93.51.191 , Luxembourg, ASN34655 (DOCLER-AS, HU),
Reverse DNS
Software
unknown /
Resource Hash
cf4724b2f736ed1a0ae6bc28f1ead963d9cd2c1fd87b6ef32e7799fc1c5c8bda

Request headers

Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Tue, 05 Feb 2019 02:27:24 GMT
Last-Modified
Mon, 28 Sep 1970 06:00:00 GMT
Server
unknown
Content-Type
image/gif
Cache-Control
no-cache
X-Real-Source
-
Connection
close
Content-Length
43
Expires
Tue, 05 Feb 2019 02:27:23 GMT
collect
www.google-analytics.com/
35 B
99 B
Image
General
Full URL
https://www.google-analytics.com/collect?t=pageview&ds=vastplayer&dl=https%3A%2F%2Fpt.ptawe.com%2Fvast%2Fv3%3Fms_notrack%3D1%26noc%3D1%26psid%3Ded_sexuvs1%26utm_medium%3Dnetwork%26utm_source%3Dnetwkclckne&dr=http%3A%2F%2Fwww.thisjav.com%2Fzh-hant%2Fvideo%2F19CdW3Pk%2Fvdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23%2F&cid=1172e473f7ad4c49852c0b52bc5506eb&cn=vast%2Fv3%2Fpr&cs=netwkclckne&cm=network&z=1549333644&cd1=candygaby&cd2=ed_sexuvs1&cd3=jsm&cd4=401_1&cd5=girl&cc=pr.20c_grl_de_candygaby_04_18.mp4&tid=UA-45543902-10&v=1
Requested by
Host: www.thisjav.com
URL: http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Protocol
H2
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
2a00:1450:4001:821::200e , Ireland, ASN15169 (GOOGLE - Google LLC, US),
Reverse DNS
Software
Golfe2 /
Resource Hash
8337212354871836e6763a41e615916c89bac5b3f1f0adf60ba43c7c806e1015
Security Headers
Name Value
X-Content-Type-Options nosniff

Request headers

Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
User-Agent
Mozilla/5.0 (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, 09 Jan 2019 14:21:59 GMT
x-content-type-options
nosniff
last-modified
Sun, 17 May 1998 03:00:00 GMT
server
Golfe2
age
2289925
content-type
image/gif
status
200
alt-svc
quic=":443"; ma=2592000; v="44,43,39"
cache-control
no-cache, no-store, must-revalidate
access-control-allow-origin
*
content-length
35
expires
Mon, 01 Jan 1990 00:00:00 GMT
80d9b7b11d05a91c1cebaac5cb5e427c.mp4
galleryn0.awemwh.com/f8d2e11bd6c43618af00d6f28c91232a14/
2 MB
0
Media
General
Full URL
https://galleryn0.awemwh.com/f8d2e11bd6c43618af00d6f28c91232a14/80d9b7b11d05a91c1cebaac5cb5e427c.mp4
Requested by
Host: www.thisjav.com
URL: http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Protocol
H2
Security
TLS 1.2, ECDHE_RSA, AES_256_GCM
Server
93.93.51.190 , Luxembourg, ASN34655 (DOCLER-AS, HU),
Reverse DNS
Software
nginx /
Resource Hash
Security Headers
Name Value
X-Content-Type-Options nosniff

Request headers

Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Accept-Encoding
identity;q=1, *;q=0
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Range
bytes=32768-

Response headers

date
Tue, 05 Feb 2019 02:27:24 GMT
x-content-type-options
nosniff
last-modified
Mon, 12 Mar 2018 13:02:14 GMT
server
nginx
etag
"ed0c31cff67e6519f4106f5a2fa313f6"
status
206
content-type
video/mp4
Content-Range
bytes 32768-1947945/1947946
cache-control
max-age=1209600, public
Content-Length
1915178
expires
Tue, 19 Feb 2019 02:27:24 GMT
alfie.f51946af45e0b561c60f768335c9eb79.js
c.disquscdn.com/next/embed/
19 KB
7 KB
Script
General
Full URL
https://c.disquscdn.com/next/embed/alfie.f51946af45e0b561c60f768335c9eb79.js
Requested by
Host: wwwthisjavcom.disqus.com
URL: https://wwwthisjavcom.disqus.com/embed.js
Protocol
H2
Security
TLS 1.2, ECDHE_ECDSA, AES_128_GCM
Server
2606:4700::6810:4ea6 , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
eda8f00e9255746e7620848227aca122053845c9b4a90f1b3e26b4cd99af9e25
Security Headers
Name Value
Strict-Transport-Security max-age=300; includeSubdomains
X-Content-Type-Options nosniff
X-Xss-Protection 1; mode=block

Request headers

Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

date
Tue, 05 Feb 2019 02:27:24 GMT
content-encoding
gzip
x-content-type-options
nosniff
cf-cache-status
HIT
cf-ray
4a41f010bff4c2c4-FRA
status
200
vary
Accept-Encoding
content-length
6605
x-xss-protection
1; mode=block
last-modified
Wed, 29 Aug 2018 23:43:03 GMT
server
cloudflare
cache-control
max-age=31536000, public, immutable, no-transform
etag
"5b872f87-19cd"
expect-ct
max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
strict-transport-security
max-age=300; includeSubdomains
content-type
application/javascript; charset=utf-8
access-control-allow-origin
*
fastly-debug-digest
baac760ca1e6f62ea6380d62d4f07b5dfbb97755c19df0448623d4ede950e2e4
accept-ranges
bytes
timing-allow-origin
*
expires
Sat, 31 Aug 2019 08:32:13 GMT
ping
links.services.disqus.com/api/
295 B
917 B
XHR
General
Full URL
https://links.services.disqus.com/api/ping?format=jsonp&key=cfdfcf52dffd0a702a61bad27507376d&loc=http%3A%2F%2Fwww.thisjav.com%2Fzh-hant%2Fvideo%2F19CdW3Pk%2Fvdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23%2F&subId=4685503&v=1&jsonp=vglnk_jsonp_15493336449250
Requested by
Host: c.disquscdn.com
URL: https://c.disquscdn.com/next/embed/alfie.f51946af45e0b561c60f768335c9eb79.js
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
151.101.120.64 San Francisco, United States, ASN54113 (FASTLY - Fastly, US),
Reverse DNS
Software
Apache-Coyote/1.1 /
Resource Hash
6f8bb21ddcda4c878465ac485762ebc981d423b0611babd5e69b6889137565ca

Request headers

User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Origin
http://www.thisjav.com

Response headers

Pragma
no-cache
Date
Tue, 05 Feb 2019 02:27:25 GMT
Server
Apache-Coyote/1.1
P3P
CP="ALL IND DSP COR CUR ADM TAIo PSDo OUR COM INT NAV PUR STA UNI"
Access-Control-Allow-Origin
http://www.thisjav.com
Cache-Control
no-cache, no-store
Access-Control-Allow-Credentials
true
Connection
keep-alive
Content-Type
text/javascript;charset=UTF-8
Content-Length
295
Expires
Thu, 01 Jan 1970 00:00:00 GMT
imp
ca.clcknads.pro/v2/a/vsl/
0
493 B
Image
General
Full URL
http://ca.clcknads.pro/v2/a/vsl/imp?d=AV39A-HZZOXa2ldJUIVScGWsMJ_NY7buejNWxAAUYM5lFoh67SBo0cvihwaheeNVFIUXFLROPP72OBo9BeSONVQaX5wNR5umU-bLpxVqSao55v7CzdfOfcFXLw9VXcgwwLc17Eu0XBgxDHPnk8TerTkmURTkxGTwX5EekYnhKu36qdRv6jp-TJpSwL7CUR0KhguYSpYW4oxDrJ-qZZvotHQ-ldEWBCFns0H5ojb9RLvWmaRcxRYmCCkihusSJreyQBjb6D2w4h3wHkFNiKPmuxb2jT2VfeiMMdD7Mxix1skYqYuU5uHt-Mf7JYCBUCQrQsIQ0raS7ulB2G-FCnooheyxIdNGCMv4u-uZhY8IvhqK88MyHpod6iXBtPmbho5bRISKTIcIXb5NQnAp8SmDF3q4xFuycYnTGlxid0g3tFLuVtNYM7qrWDs1wfJLKcshdwrTL8nM-JIa76opRu-BTiZbQS7G4-WRm3A7NLsugl86uaRAVK1bexJPTxRhzRnImKbMyzXPaWD_DQTjm7MSW6qY0OZvuqwN0hKryIGDu92JNrxmk-10Er1UIxaPv9VIZyZ8eMOXZeruTe73zO346WPbL_ViHX94Uyf6DoQiPiDLykigNMclDGaogLJ0TekUDm-J9fN4SM4RPN-zqf6yFeyhJDh1Jaajd4AnOsInSoPE7_ZjyAQJW_av5aq1tH2243O3jAZ4TGvpE-qGN09d-Z7Vjx_TBNwiTQw1EGfa1mISXKMscnaV-FaIYfjtk5qtMfjnJLf1aG729CPsyP1xoYNxRH-Hn79_FBZmYtYM68I1SLr4a5NPV6xJnGjNGvIZDcBKnUReZTHTWi3e79MURyOCj3M1ALT-lTZNueMNVC89ZdR0UAM5iuSmKc-M1nK_xnx1aDLvxawqEnoNGzuv52R2JAuTDHQmeacID9g5BArw2IcxCn-JPqja8JnVbYkQp8Sx0SntDCNfUJMa51b-BRFZ4aFwuN2_Yx3zuZilbg5OWYt-b_TGv5i5IfDbjrtwLuQEBQuDD5eQZleM8A_6hl8ZfHntT7J9MkOLKHzwnAsomMYwNVQpIKADy7IaLdeOmcCxW-meV4kubu4cMzvZfUuvnPP08lhezZAZ85B1Imnqe3AOyM0vSgda0yOUqzFEyTBrhv4zcp_tVrdTDe9lbhibh3TM93pc63FePgcoQDBgnuh8fV6FyzU8RxjmrU4bBMmW14ibaf7MQkoUAskB4QL4ZwBA8H2oRIHNvGl7Kv_xxqk9PVGyU0wJdAyXPKq3HteMPPB31nsnxh6o-a-RI_HloOskaU-U15d0qR0XkBtZoLQLuySDc51pjkFflELPbXDIZi6W9_0lbi0GCdkEh0xy4zraJUaFxUzjnnwSOFnI0wtx6nsCUvfiqCQa2C74k99Df1qbcD7afwi2KWlcnZccawjFkdfDZv2LPpKiwgU6ZwqTWPJkRhJqVIC97FNFp4H0uQYeea4pgFmF-bajXDiEANxk8Ctc_9xKnYSIfTkPpG3BhR13He6d7IYY5jcAtclVTEI3d-QOhnip43pMKdYvFxqaZGQtXcsIJjbNRx9nBPJp9FN1LgtF_cQdr4Ss0YdV5EqtvarzVXBRSLDh3zFBida93qINvty43hZ9oqZXIFiAe18g4umuU0qDAgpDc_3L62AN_UgRo5OrEb-yY28B8FextcseefBg5FyJRbPHjRm2EyVWU7mYf3h3hDSBiLEIRIhXB19MjKOAkOLyMhLpE0Yh0uxBuzSsJgnHZqKKp-y_PdncVs5KXfKz6YLIUWqg9Pa13DbaGz1j1h1DlCIqNWVNvsRvF1D0ctk1qgfRzh2cw5q5kgSU-UoFc2bkBSlSKhQHeb4fPFLJ0CFCQmeeH6Fh-lsUK9dbb9l0M1RMWDX8HBA8VSsfy5ba6Jwo5g
Requested by
Host: www.thisjav.com
URL: http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Protocol
HTTP/1.1
Server
88.208.59.100 , Netherlands, ASN39572 (ADVANCEDHOSTERS-AS, NL),
Reverse DNS
Software
nginx /
Resource Hash
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

Request headers

Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Pragma
no-cache
Date
Tue, 05 Feb 2019 02:27:25 GMT
Referrer-Policy
unsafe-url
Last-Modified
Tue, 05 Feb 2019 02:27:25 UTC
Server
nginx
Access-Control-Max-Age
86400
P3p
CP="NOI DEVa TAIa OUR BUS UNI STA"
Access-Control-Allow-Origin
*
Cache-Control
private, no-cache, no-store, must-revalidate, max-age=0
Access-Control-Allow-Credentials
true
Connection
keep-alive
Content-Type
text/plain; charset=UTF-8
Expires
Tue, 05 Feb 2019 02:27:25 UTC
collect
www.google-analytics.com/
35 B
99 B
Image
General
Full URL
https://www.google-analytics.com/collect?t=event&ds=vastplayer&ea=vast+tracking&ec=vast+player&el=start&dl=https%3A%2F%2Fpt.ptawe.com%2Fvast%2Fv3%3Fms_notrack%3D1%26noc%3D1%26psid%3Ded_sexuvs1%26utm_medium%3Dnetwork%26utm_source%3Dnetwkclckne&dr=http%3A%2F%2Fwww.thisjav.com%2Fzh-hant%2Fvideo%2F19CdW3Pk%2Fvdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23%2F&cid=1172e473f7ad4c49852c0b52bc5506eb&cn=vast%2Fv3%2Fpr&cs=netwkclckne&cm=network&z=1549333644&cd1=candygaby&cd2=ed_sexuvs1&cd3=jsm&cd4=401_1&cd5=girl&cc=pr.20c_grl_de_candygaby_04_18.mp4&tid=UA-45543902-10&v=1
Requested by
Host: www.thisjav.com
URL: http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
Protocol
H2
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
2a00:1450:4001:821::200e , Ireland, ASN15169 (GOOGLE - Google LLC, US),
Reverse DNS
Software
Golfe2 /
Resource Hash
8337212354871836e6763a41e615916c89bac5b3f1f0adf60ba43c7c806e1015
Security Headers
Name Value
X-Content-Type-Options nosniff

Request headers

Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
User-Agent
Mozilla/5.0 (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, 09 Jan 2019 14:21:59 GMT
x-content-type-options
nosniff
last-modified
Sun, 17 May 1998 03:00:00 GMT
server
Golfe2
age
2289926
content-type
image/gif
status
200
alt-svc
quic=":443"; ma=2592000; v="44,43,39"
cache-control
no-cache, no-store, must-revalidate
access-control-allow-origin
*
content-length
35
expires
Mon, 01 Jan 1990 00:00:00 GMT
s.png
ca.clcknads.pro/v1/pt/NjQ2Zjc0MmU2MzZmNmQ%3D/
68 B
323 B
Image
General
Full URL
https://ca.clcknads.pro/v1/pt/NjQ2Zjc0MmU2MzZmNmQ%3D/s.png
Protocol
H2
Security
TLS 1.2, ECDHE_RSA, AES_256_GCM
Server
88.208.59.100 , Netherlands, ASN39572 (ADVANCEDHOSTERS-AS, NL),
Reverse DNS
Software
nginx /
Resource Hash
63ef318d96b5d0d0ceba6e04a4e622b1158335cdc67c49e27839132c6f655058

Request headers

Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

date
Tue, 05 Feb 2019 02:27:29 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
track.engine
engine.phn.doublepimp.com/
0
285 B
Image
General
Full URL
http://engine.phn.doublepimp.com/track.engine?dcid=3_ctx_fbdef80a-a154-4a6f-8eac-41bfc7217b7f&evt=2&evtData=%7b%22vp%22%3a1%2c%22v%22%3a%22jL2k7_8kXjng2fOs2fWvEDgG__GwAlWt_RbZYa1iAHpRxuouZBhY-vkqvo93S-Ft5kxAdurpgWXkFCyKjWbJM7ah-MtkkY_GjEdfgmaWWDaGkogDimsOo5RWJn-PIzT2AYHgnOUD6lbWYG5mXA2zS8UsTMvUJVFoVW2oG6YKIywrsjxsNpUHfJciZ9PwBUaI86D3wQ-efJbC3i0MbYAToHcZkkVzHGPw22Dl-tcvnMZ4JDb8mwdw80PY6lzey63M6ZTKKmAS9T0vR2Ai8jGGf1cKsecWD7tyZ5i3qYFsuorz8flbtXFT0FpHaR0jXtr7eTgRyJrEKwqFyhTe7pphQEV_7oZmitQnL1DI3L12G9c6bG60CzmPna4pMWrCbLRCtpkh6ScNXgVgx92V9b7w4O3jQtSJ2SaisEqCV5MgbDDSk-5uzLJhP4P2EoaATWnsbl61QaXrFmptI1M8PI18yiyWYQzr07AKYUCz5tciu5FTIB9jTEub1l-A62VX_-RBwwQNsS9V16iQTiBl9C618zaZDVF-wEcAfODeGbVxlM5aPycRy5riUrGcZgwfYks7ifptbw84UTRCwUfD_2lpzRG6XB05Lkpg_sN12SsCHK8LSho1CE2uV4_PLunv7O9ddFc_yx_doBkYbr7_fyPq_x9fHOantVm60xQIEx7b_NlgEMHeIZgMze_lSE5Hz0o2_cr08MA9pXwB-jP2K1-dsjpmhYQwoJoddCyOgY76ahvyT2xd-eV9LnqlyTSpUQnu3c22Rl0YlF0wZh23g56oSR_PCAbdqBE4EE4fbx1YVOK51pYRJrAVS1jPZ6J6C8wZ0%22%7d
Protocol
HTTP/1.1
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
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

Request headers

Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Tue, 05 Feb 2019 02:27:29 GMT
Server
Microsoft-IIS/10.0
X-Powered-By
ASP.NET
P3P
CP="CAO PSA OUR IND"
Access-Control-Allow-Origin
http://engine.phn.doublepimp.com:8890
Cache-Control
private
Access-Control-Allow-Credentials
true
Content-Length
0
track.engine
engine.phn.doublepimp.com/
0
285 B
Image
General
Full URL
http://engine.phn.doublepimp.com/track.engine?dcid=3_ctx_fbdef80a-a154-4a6f-8eac-41bfc7217b7f&evt=2&evtData=%7b%22vp%22%3a2%2c%22v%22%3a%22jL2k7_8kXjng2fOs2fWvEDgG__GwAlWt_RbZYa1iAHpRxuouZBhY-vkqvo93S-Ft5kxAdurpgWXkFCyKjWbJM7ah-MtkkY_GjEdfgmaWWDaGkogDimsOo5RWJn-PIzT2AYHgnOUD6lbWYG5mXA2zS8UsTMvUJVFoVW2oG6YKIywrsjxsNpUHfJciZ9PwBUaI86D3wQ-efJbC3i0MbYAToHcZkkVzHGPw22Dl-tcvnMZ4JDb8mwdw80PY6lzey63M6ZTKKmAS9T0vR2Ai8jGGf1cKsecWD7tyZ5i3qYFsuorz8flbtXFT0FpHaR0jXtr7eTgRyJrEKwqFyhTe7pphQEV_7oZmitQnL1DI3L12G9c6bG60CzmPna4pMWrCbLRCtpkh6ScNXgVgx92V9b7w4O3jQtSJ2SaisEqCV5MgbDDSk-5uzLJhP4P2EoaATWnsbl61QaXrFmptI1M8PI18yiyWYQzr07AKYUCz5tciu5FTIB9jTEub1l-A62VX_-RBwwQNsS9V16iQTiBl9C618zaZDVF-wEcAfODeGbVxlM5aPycRy5riUrGcZgwfYks7ifptbw84UTRCwUfD_2lpzRG6XB05Lkpg_sN12SsCHK8LSho1CE2uV4_PLunv7O9ddFc_yx_doBkYbr7_fyPq_x9fHOantVm60xQIEx7b_NlgEMHeIZgMze_lSE5Hz0o2_cr08MA9pXwB-jP2K1-dsjpmhYQwoJoddCyOgY76ahvyT2xd-eV9LnqlyTSpUQnu3c22Rl0YlF0wZh23g56oSR_PCAbdqBE4EE4fbx1YVOK51pYRJrAVS1jPZ6J6C8wZ0%22%7d
Protocol
HTTP/1.1
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
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

Request headers

Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Tue, 05 Feb 2019 02:27:34 GMT
Server
Microsoft-IIS/10.0
X-Powered-By
ASP.NET
P3P
CP="CAO PSA OUR IND"
Access-Control-Allow-Origin
http://engine.phn.doublepimp.com:8890
Cache-Control
private
Access-Control-Allow-Credentials
true
Content-Length
0
collect
www.google-analytics.com/
35 B
99 B
Image
General
Full URL
https://www.google-analytics.com/collect?t=event&ds=vastplayer&ea=vast+tracking&ec=vast+player&el=midpoint&dl=https%3A%2F%2Fpt.ptawe.com%2Fvast%2Fv3%3Fms_notrack%3D1%26noc%3D1%26psid%3Ded_sexuvs1%26utm_medium%3Dnetwork%26utm_source%3Dnetwkclckne&dr=http%3A%2F%2Fwww.thisjav.com%2Fzh-hant%2Fvideo%2F19CdW3Pk%2Fvdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23%2F&cid=1172e473f7ad4c49852c0b52bc5506eb&cn=vast%2Fv3%2Fpr&cs=netwkclckne&cm=network&z=1549333644&cd1=candygaby&cd2=ed_sexuvs1&cd3=jsm&cd4=401_1&cd5=girl&cc=pr.20c_grl_de_candygaby_04_18.mp4&tid=UA-45543902-10&v=1
Protocol
H2
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
2a00:1450:4001:821::200e , Ireland, ASN15169 (GOOGLE - Google LLC, US),
Reverse DNS
Software
Golfe2 /
Resource Hash
8337212354871836e6763a41e615916c89bac5b3f1f0adf60ba43c7c806e1015
Security Headers
Name Value
X-Content-Type-Options nosniff

Request headers

Referer
http://www.thisjav.com/zh-hant/video/19CdW3Pk/vdd-096-elevator-girl-in-coercion-suite-elevator-girl-mai-23/
User-Agent
Mozilla/5.0 (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, 09 Jan 2019 14:21:59 GMT
x-content-type-options
nosniff
last-modified
Sun, 17 May 1998 03:00:00 GMT
server
Golfe2
age
2289936
content-type
image/gif
status
200
alt-svc
quic=":443"; ma=2592000; v="44,43,39"
cache-control
no-cache, no-store, must-revalidate
access-control-allow-origin
*
content-length
35
expires
Mon, 01 Jan 1990 00:00:00 GMT

Failed requests

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

Domain
www.thisjav.com
URL
blob:http://www.thisjav.com/7f84b5c1-2eb9-4e05-a222-26c04fb98706
Domain
www.thisjav.com
URL
blob:http://www.thisjav.com/7f84b5c1-2eb9-4e05-a222-26c04fb98706
Domain
www.thisjav.com
URL
blob:http://www.thisjav.com/7f84b5c1-2eb9-4e05-a222-26c04fb98706
Domain
www.thisjav.com
URL
blob:http://www.thisjav.com/7f84b5c1-2eb9-4e05-a222-26c04fb98706
Domain
www.thisjav.com
URL
blob:http://www.thisjav.com/7f84b5c1-2eb9-4e05-a222-26c04fb98706
Domain
www.thisjav.com
URL
blob:http://www.thisjav.com/7f84b5c1-2eb9-4e05-a222-26c04fb98706
Domain
www.thisjav.com
URL
blob:http://www.thisjav.com/7f84b5c1-2eb9-4e05-a222-26c04fb98706
Domain
www.thisjav.com
URL
blob:http://www.thisjav.com/7f84b5c1-2eb9-4e05-a222-26c04fb98706

Verdicts & Comments Add Verdict or Comment

64 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 string| GoogleAnalyticsObject function| ga string| ad_idzone string| ad_width string| ad_height function| getParameterFromUrl string| p number| dt string| exoDocumentProtocol string| ad_sub string| ad_tags string| ad_notify string| ad_el string| ad_type string| ad_screen_resolution function| y7ll function| f5yy string| _DfIrLoGdmy6vdQOr object| UmDWe9Dn8Fr2nKAs function| cIPop object| google_tag_data object| gaplugins object| gaGlobal object| gaData object| FontAwesomeCdnConfig string| cssUrl function| $ function| jQuery function| Tether function| videojs object| vttjs function| VTTRegion function| WebVTT object| $w object| $d object| $b object| _0x440b function| _0x53f8 object| CRLT object| miner string| uid string| wid string| popns object| IOarzRhPlP object| _pop number| starred function| s3EE object| leca object| Base64 function| pafban object| BJPPopAds object| detectZoom object| PopAds object| _pao function| disqus_config object| DISQUS string| vglnk_self function| vl_cB function| vl_disable undefined| vglnk_jsonp_15493336449250 object| vglnk

13 Cookies

Domain/Path Name / Value
.thisjav.com/ Name: _ga
Value: GA1.2.286613835.1549333644
.exoclick.com/ Name: impressions
Value: x%9CK%B42%B2%AA%CE%B42210%B40%B1%B0N%B42%06q%0D%AC3%AD%0Ca%D8%D4%C4%D2%D8%D8%D8%CC%C4%18%C81%B2.%B62%B1R2411P%B2%AE%05%F2-%8C%0C%CC%CC%0DH%D4W%0B%00%F1%BB%1D%9C
.openload.co/ Name: __cfduid
Value: d546c24dcbb33fe5315e1a3ec1ce4cf5d1549333643
.exosrv.com/ Name: impressions
Value: x%9CK%B42%B4%AA%CE%B42%B202037%B0N%B42%06q%0D%AC3%AD%0Ca%D8%D4%C4%D2%D8%D8%D8%CC%C4%18%C81%B2.%B62%B1R2411P%B2%AE%AD%05%00%F8%E6%0F%CC
.exoclick.com/ Name: __uvt
Value: a%3A1%3A%7Bi%3A0%3Bs%3A33%3A%225c58f48bbd3115.350332311690963347%22%3B%7D
.thisjav.com/ Name: _gid
Value: GA1.2.705655925.1549333644
.exosrv.com/ Name: __uvt
Value: a%3A1%3A%7Bi%3A0%3Bs%3A33%3A%225c58f48ba80b68.991409302260591416%22%3B%7D
.thisjav.com/ Name: _gat
Value: 1
.disqus.com/ Name: G_ENABLED_IDPS
Value: google
www.thisjav.com/ Name: csrftoken
Value: BjvtPUvN1fcMc7sGIVu1zQEbntETDP09YbHk9JvbpCQpcK3y0vDP30CMbtokuwOg
openload.co/ Name: _olbknd
Value: w4
.google.com/ Name: NID
Value: 158=Tcm0bDN90gPe3nigFlfRznBn7SC8WOPf7l0PDiy9FsmIJqKFkLqK9hiSsSoSHnCoutomLRvhlfCTIJNxLkMpUTgG6xqidp15BBXSdf1IFllN1nFHnxsglq2I-oKHNcsGhjX4CkZCNiHEJb0PiT5TwZvaup8iEYCzVwOF7gu4Iyg
.thisjav.com/ Name: __cfduid
Value: d40330371a87683fa8593327455b40d011549333641

65 Console Messages

Source Level URL
Text
console-api log URL: http://cdn.popcash.net/pop.js(Line 5)
Message:
Popunder Script @ popunderjs.com
console-api log URL: http://cdn.popcash.net/pop.js(Line 5)
Message:
Author:
console-api log URL: http://cdn.popcash.net/pop.js(Line 5)
Message:
Version:
console-api log URL: http://cdn.popcash.net/pop.js(Line 5)
Message:
Release:
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1)
Message:
console.clear
console-api log URL: http://cdn.popcash.net/pop.js(Line 5)
Message:
111
console-api log URL: http://cdn.popcash.net/pop.js(Line 5)
Message:
popunderjs.com:
console-api log URL: http://cdn.popcash.net/pop.js(Line 5)
Message:
popunderjs.com:
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogdHJ1ZSwKICAgICAgd2lkdGg6IG51bGwsCiAgICAgIGhlaWdodDogbnVsbCwKICAgICAgdG9wOiBudWxsLAogICAgICBsZWZ0OiBudWxsLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1)
Message:
console.clear

Security Headers

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

Header Value
X-Frame-Options SAMEORIGIN

Indicators

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

ads.exoclick.com
ads.exosrv.com
ajax.googleapis.com
c.adsco.re
c.disquscdn.com
c1.popads.net
ca.clcknads.pro
cdn.popcash.net
cdn.thisjav.com
cdnjs.cloudflare.com
dcba.popcash.net
disqus.com
engine.phn.doublepimp.com
fonts.googleapis.com
fonts.gstatic.com
galleryn0.awemwh.com
links.services.disqus.com
maxcdn.bootstrapcdn.com
openload.co
pt.ptawe.com
serve.popads.net
statdynamic.com
syndication.exoclick.com
syndication.exosrv.com
use.fontawesome.com
vjs.zencdn.net
www.google-analytics.com
www.thisjav.com
wwwthisjavcom.disqus.com
www.thisjav.com
151.101.120.134
151.101.120.64
151.101.128.134
195.181.170.18
209.197.3.15
216.21.13.17
23.111.9.35
2606:2800:234:1f1f:1754:1fef:718:1223
2606:4700:30::6812:32a3
2606:4700:30::6812:33a3
2606:4700:30::681b:a41e
2606:4700::6810:4ea6
2606:4700::6810:a632
2606:4700::6811:a6ba
2606:4700::6813:c397
2a00:1450:4001:809::200a
2a00:1450:4001:821::200e
2a00:1450:4016:80a::200a
2a00:1450:4016:80d::2003
2a04:4e42::729
52.4.72.68
69.89.69.120
69.89.69.121
88.208.59.100
93.93.51.190
93.93.51.191
94.31.29.128
95.211.229.246
95.211.229.247
006dde1b331eb5ff5a0ec37133b77cf6120bff17b51d01cd0fa854a84c8c14c7
09988d6d807db6e07cd329d778a391ffbc5ce8afc0fc4f3d74ac3ffea33bb5cf
0a769c6e43613c065b9806e2e544f290fc64dc3d8fcfd07942d249dfb1145462
0e907ea01cfc00c0d11c152d0bd7c3be94b715a6e54c7a815c70bc266c8a5b1c
19ba920e285740334e022bd97d6dfb8f7c390db18d301346e2b527e4fe576db9
1eddf699e82399631b3bd0458a4e38af2567b7f6790f557768fb298d2a026928
1fcb86d36811576627fc31b30bc683e5bad72f13e4bc9fae2616d44c018fed62
209c466284a803d69c526deb2926a0eaa59e86c12ba6fc3b8e35cc67c2e74457
20eca86fc8726b99832c2676311a74d5bc8727c18acc0616dede12e73122f7d0
25a0f8d50bd83be4e211c522bbfa953423d1db44641fc48a499b4581fa5e0670
2adefcbc041e7d18fcf2d417879dc5a09997aa64d675b7a3c4b6ce33da13f3fe
3e552578c7d450b023f2cd9d28f830be4335c3acc6c4ab6dadda0769f09e5f22
414ab94a7cfdd2de43bb1dc22cd27919af39167060cc463b2383874735bf109f
47835c70657e2b2f6905562aa06b79725267fb8e0839d5a6a6835481cd6e363f
4d28ff98dfec0477d81cce7cc7cb5b3da78c1bfcde09110a66ac8f1ef9bf5d8f
4dc77ee90dc2225b57b31d28fe06213cd6c491bdc7249a6e70ebd003b72c5702
5a3f1dd74233f605e511f1b5b244bedf85ac88ba264caf4d6401bc7ec2017dcd
5b9573e1023da775390e9284ec0eb1c606df9b468a28980055b4a6aa804f4350
5ed444a63cef25da50f57975a7d24b870e6365e37b23c5b0b75ec656e92bcf83
63ef318d96b5d0d0ceba6e04a4e622b1158335cdc67c49e27839132c6f655058
6526c1f7872675f5472d267ada2ed40d08c38a9b5aa28f972def6761d6dae987
66fb37f0a348652be4f1afc6bd5bbfa1de656d8ed495d3ddd9c19fa84d448cb1
6b4b7273174adcb9d054653157fe42d557468156b92ccfe45632659144f07058
6f8bb21ddcda4c878465ac485762ebc981d423b0611babd5e69b6889137565ca
754bd528f878ecd01176ab82fa6f43510635b37acdbf46b42db680a2a023d72c
77507fb2c0290277f546178ea3d1a0002fcdf19be490fe5eed268e9e245d029c
7765584a4f9f0b628f4b8c06c38892935dfe63e03d7b5a04a0b54f91d872382f
7abbf02ffa23039d495aef38fd9956bb01f63dbbe4b734c3947cd1296667ec9f
8337212354871836e6763a41e615916c89bac5b3f1f0adf60ba43c7c806e1015
85556761a8800d14ced8fcd41a6b8b26bf012d44a318866c0d81a62092efd9bf
86b36d9dccf5c92a1f15ed4dda109d36e8586144fd8aaf3203bf3e8705669d26
88f50e135f03adf8d62ad4d460e7f99c53ea6f62c363d9d2af526e678327bacb
8a156a1dea9c9cdbfec4bef488106e24663c0c0738c4bf36ecf785514c6a2641
8fe5ebbe44388c9f7d1e3d2924a3ebea4d110a0c430d24ecdcf06a2eb5f610c7
91ee720f3c25ec6b209d88019c20e2592340ff1fe1c94f3d5431e5fd1e77e5dc
940310a1112acc00ad5248d807cfdd39cefd8b310ec734f14fa3a488caae36d4
94872d2b59ab34deb6ba065a72f7259e97e18c65cd1b115e8d4e096c32e92d58
96c458c8a105b9437ab89bc9677fb1b71aa212bb1419c6ca5f38317619894fe6
974fb8c880eb98ae22b40d482a0d8123461225d7f360fb3a11a99a6ddf1b3990
9887e1bff87730bab759289295dbae64edec691373cee7f52caf30df3de5dc96
9d02d662da8a47fb5fb610b545007507b6017028043dbb63cd09ec897d3b9627
9d781128a8ece413b003d5612b8398bf9340ef7f5b751d12bd125ba523d3ceb5
9ff6922b326eccf9fb2c2eb6170e4f268e02d2ed4272ece521de1b29333d9ec0
a27edba0e34b2648a90a800ae94fdef3e39016d1b9bd6e54a31ede1f1cddfed0
a6bdfcd47d10e9491b11ac64c8000b525b1dfb3d7590668bc4637f05a50f183b
a8d842dc045c65986e7b50952261d47b62cab35c5829700e90d1965ec11692e3
adf17cb43830d983dd1d39bb550f38852f06fea77daf6a9058d289ce1e8528e6
b062930743fff47542480873f29329d39fa7101a7f7a204685614cabf3805cc3
b4221c88c806b7201fef40ea006fde86282b2a93a1be048dcfd45b5b1f736160
b736d71686749724687fefac932f4778ee6aada4ca4aa9a87efcbc150aa980f4
bbbb0ffd2b7f74d99ab11edc18f0a73ee170745524644a785a03be193eb13a04
bbcd95fd80a84a0807e074a1c523b852d74c14af6dbaadf91bb4d78507e39fb6
bcbc0b6ad18d98bf61139e1d7714e4fd27806afa17077083d76294cb00508a1b
bd600953b5e2430f5aabd30f75cb88c2f3d1a51be55af79f937a5e2a62b0b8ae
c473df59254bce8379d30c7ad70593f4228f9ce9c0ea33b3f12be1c9790c50f4
cf4724b2f736ed1a0ae6bc28f1ead963d9cd2c1fd87b6ef32e7799fc1c5c8bda
d1ae5f5431e8793c9a91cc08574a682d0465a3e06cbad6ac51eefbe5f8ebf568
d1ca66175d8c8247c163f4c665d1a9a15e24ced1bc0d96861187e0e32fa4d2be
d57ac77f37776038776b9b872eae2794e9d22c49754c920b734f1ea215531704
d66b9abee05f2c104f168392322f11d642ff74a5d633f8e4740859b03521917f
dbfa65639ab1fdc6fd96d6210929797cccc4ec717a5e32c9344444ccac839cba
dd8eb8631068f2799f923f35e8b5034693a69fa0efbdbc0d316bde9e707d86a8
dfdce7f4353d8bba19b1fa630a23856e9fbb2c5aca5fb89bede321ac6d5a9cbb
e0e2bc4e1d3ee5024c4e1aa58a6cad9aa42fc63a8c89ce18013a1c8f2b94875c
e11d5efa238053983be6687278ebc93972ffe208bf5df2f5d3fae9dbf15aaf0e
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
eda8f00e9255746e7620848227aca122053845c9b4a90f1b3e26b4cd99af9e25
f30258528fe92de2b010ac8190b77cbb722b9c45f9c7521b1af06b53324fc56c
f338c6856f96a14b4a0b95c4f40cf7e317612ff6c949c109ce9a6add6562d8d1
fba4729df172cf704b324e468cb3b0054e6ec85bbc329b1a18d01d9dc0bab8ec
ff23e90cdc1653e38918218f9657278de8c99f3de1ee4d959a9c50492c33104c
ff9a470d98767efd5e6489b27e24e1b41e408382ea0e3ca2b6d4fb7cb8dd4fff