<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<div style="font-family: "Segoe UI", "Segoe UI Web (West European)", "Helvetica Neue", sans-serif; font-size: 12pt; color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);" class="elementToProof">
<span style="font-size:12pt;margin:0px" class="ContentPasted1">Hi Graduate Students,</span></div>
<div style="font-family: "Segoe UI", "Segoe UI Web (West European)", "Helvetica Neue", sans-serif; font-size: 12pt; color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);" class="elementToProof">
<div style="font-size:12pt;margin:0px"><br class="ContentPasted1">
</div>
<div style="font-size:12pt;margin:0px" class="ContentPasted1">Please see the workshop opportunity below.</div>
</div>
<div class="elementToProof">
<div style="font-family: "Segoe UI", "Segoe UI Web (West European)", "Helvetica Neue", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div id="Signature">
<div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);">
<p style="margin: 0in; font-size: 11pt; font-family: Calibri, sans-serif; background: white;">
<span style="font-size: 11pt; font-family: "Segoe UI", sans-serif; color: black;" class="ContentPasted0">Kind regards,</span><span style="font-size: 12pt; font-family: "Segoe UI", sans-serif; color: black;" class="ContentPasted0"><o:p class="ContentPasted0"><span style="font-size: 11pt;"> </span></o:p></span></p>
<p style="margin: 0in; font-size: 11pt; font-family: Calibri, sans-serif; background: white;">
<span style="font-size: 12pt; font-family: "Segoe UI", sans-serif; color: black;"><o:p class="ContentPasted0"><span style="font-size: 11pt;"> </span></o:p></span></p>
<p style="margin: 0in; font-size: 11pt; font-family: Calibri, sans-serif; background: white;">
<b><span style="font-size: 11pt; font-family: "Segoe UI", sans-serif; border: 1pt none windowtext; padding: 0in; color: black;" class="ContentPasted0">Lori Jaramillo</span></b><span style="font-size: 12pt; font-family: "Segoe UI", sans-serif; color: black;"><o:p class="ContentPasted0"><span style="font-size: 11pt;"> </span></o:p></span></p>
<p style="margin: 0in; font-size: 11pt; font-family: Calibri, sans-serif; background: white;">
<i><span style="font-size: 11pt; font-family: "Segoe UI", sans-serif; border: 1pt none windowtext; padding: 0in; color: black;" class="ContentPasted0">Graduate Student Advisor</span></i><span style="font-size: 12pt; font-family: "Segoe UI", sans-serif; color: black;"><o:p class="ContentPasted0"><span style="font-size: 11pt;"> </span></o:p></span></p>
<p style="margin: 0in; font-size: 11pt; font-family: Calibri, sans-serif; background: white;">
<span style="font-size: 11pt; font-family: "Segoe UI", sans-serif; border: 1pt none windowtext; padding: 0in; color: black;" class="ContentPasted0">CHASS - Economics & Political Science</span><span style="font-size: 12pt; font-family: "Segoe UI", sans-serif; color: black;"><o:p class="ContentPasted0"><span style="font-size: 11pt;"> </span></o:p></span></p>
<p style="margin: 0in; font-size: 11pt; font-family: Calibri, sans-serif; background: white;">
<span style="font-size: 11pt; font-family: "Segoe UI", sans-serif; border: 1pt none windowtext; padding: 0in; background: white; color: rgb(69, 90, 100);" class="ContentPasted0">(951) 827-5597</span><span style="font-size: 12pt; font-family: "Segoe UI", sans-serif; color: black;"><o:p class="ContentPasted0"><span style="font-size: 11pt;"> </span></o:p></span></p>
<p style="margin: 0in; font-size: 11pt; font-family: Calibri, sans-serif; background: white;">
<span style="font-size: 11pt; font-family: "Segoe UI", sans-serif; border: 1pt none windowtext; padding: 0in; background: white; color: rgb(69, 90, 100);" class="ContentPasted0">LorenaJ@ucr.edu</span><span style="font-size: 12pt; font-family: "Segoe UI", sans-serif; color: black;"><o:p class="ContentPasted0"><span style="font-size: 11pt;"> </span></o:p></span></p>
<p style="margin: 0in; font-size: 11pt; font-family: Calibri, sans-serif; background: white;">
<span style="font-size: 12pt; font-family: "Segoe UI", sans-serif; color: black;"><o:p class="ContentPasted0"><span style="font-size: 11pt;"><br>
</span></o:p></span></p>
<p style="margin: 0in; font-size: 11pt; font-family: Calibri, sans-serif; background: white;">
<span style="font-size: 12pt; font-family: "Segoe UI", sans-serif; color: black;"><o:p class="ContentPasted0"><span style="font-size: 11pt;"><br>
</span></o:p></span></p>
<div dir="ltr" style="font-size: 15px; font-family: "Segoe UI", "Segoe UI Web (West European)", "Segoe UI", -apple-system, BlinkMacSystemFont, Roboto, "Helvetica Neue", sans-serif; margin: 0px; color: rgb(36, 36, 36); background-color: rgb(255, 255, 255);">
<font face="Calibri, sans-serif" style="font-size: 11pt; color: rgb(0, 0, 0);" class="ContentPasted2"><b class="ContentPasted2">From:</b><span class="ContentPasted2"> </span>Catherine Wright <catherine.wright@email.ucr.edu><br class="ContentPasted2">
<b class="ContentPasted2">Sent:</b><span class="ContentPasted2"> </span>Monday, April 17, 2023 8:00 PM<br class="ContentPasted2">
<b class="ContentPasted2">To:</b><span class="ContentPasted2"> </span>Lorena Jaramillo <lorena.jaramillo@ucr.edu><br class="ContentPasted2">
<b class="ContentPasted2">Subject:</b><span class="ContentPasted2"> </span>Fwd: MIR event in LA: Marx in the Movements, April 29 2-4pm + Drinks after?</font>
<div style="margin:0px" class="ContentPasted2"> </div>
</div>
<div style="font-size: 15px; font-family: "Segoe UI", "Segoe UI Web (West European)", "Segoe UI", -apple-system, BlinkMacSystemFont, Roboto, "Helvetica Neue", sans-serif; margin: 0px; color: rgb(36, 36, 36); background-color: rgb(255, 255, 255);">
<span dir="ltr" style="margin:0px" class="ContentPasted2">Hi Lori! Could you forward this workshop opportunity to our grad network? Thank you!</span></div>
<br>
</div>
</div>
</div>
</div>
<div dir="ltr">
<div dir="ltr" class="elementToProof"><br>
<div class="x_x_gmail_quote">
<div dir="ltr" class="x_x_gmail_attr">---------- Forwarded message ---------<br>
From: <strong class="x_x_gmail_sendername" dir="auto">Charmaine Chua</strong> <span dir="auto">
<<a href="mailto:charmainechua@ucsb.edu" data-auth="NotApplicable" data-loopstyle="link">charmainechua@ucsb.edu</a>></span><br>
Date: Mon, Apr 17, 2023 at 6:37 PM<br>
Subject: MIR event in LA: Marx in the Movements, April 29 2-4pm + Drinks after?<br>
<br>
</div>
<br>
<div dir="ltr">Dear UCLA and UCR MIR colleagues, 
<div><br>
</div>
<div>On behalf of the <a href="https://www.marxistinstitute.org/" data-auth="NotApplicable" data-loopstyle="link">
Marxist Institute for Research</a>, Annie McClanahan and I are writing to warmly invite you to <b>Marx in the Movements, </b>a workshop about radical working class movements and mutual aid in Los Angeles On<u> </u>April 29, Saturday,  At 2220 Arts (2220 Beverly
 Blvd) from 2-4pm. Annie may have already emailed you about the event, which I hope you'll join us for. Here is a link for sharing with your networks: <a href="https://dice.fm/event/882xv-workshop-marx-in-the-movements-29th-apr-2220-arts-archives-los-angeles-tickets?lng=en-US" data-auth="NotApplicable">https://dice.fm/event/882xv-workshop-marx-in-the-movements-29th-apr-2220-arts-archives-los-angeles-tickets?lng=en-US</a></div>
<div><br>
</div>
<div>But we are also writing now to invite you to drinks afterward: regretfully, we haven't had the chance to talk with those of you at UCLA and UCR as much as we'd like within the MIR network, and would love the opportunity to get to meet you, hear about your
 research, and hang out with comrades. As we hope we conveyed: we so enjoyed reading about your projects and research, and really  wish we had the space to accept all of you into this year's summer program - but we hope to be able to build community with you
 in other ways!  So if you are able, please join us for a drink after the event. We'll just hang around after things are done and adjourn to a bar nearby, so do please say hi after the event, and we'll hatch a plan. </div>
<div><br>
</div>
<div>A little more on the event itself:</div>
<div>We conceived of this event as a chance to get organizers, activists, and scholars together to think about what working-class movements look like in a post-industrial era. The event will feature six organizers from <a href="https://swoplosangeles.org/" data-auth="NotApplicable" data-loopstyle="link">Sex
 Workers Outreach Project -LA</a>, the <a href="https://latenantsunion.org/en/" data-auth="NotApplicable" data-loopstyle="link">LA Tenants Union</a>, and Amazon Warehouse workers affiliated with the <a href="https://warehouseworkers.org/about-us/" data-auth="NotApplicable" data-loopstyle="link">Warehouse
 Workers Resource Center</a> -- to think about the connections between social reproduction struggles, labor struggles, and movements against the regimes of private property and the wage, especially those that don’t take the “traditional union” form. Organizers
 will present on these questions, and then we’ll open it up for a conversation between/across the groups, moderated by Annie and me. Please feel free to share this with colleagues and friends who might be interested. </div>
<div><br>
</div>
<div>Many thanks, and solidarity, </div>
<div>Charmaine</div>
<div><img alt="marx in the movements.png" width="292" height="452" src="data:text/html;base64,PCFET0NUWVBFIGh0bWw+IDxodG1sIGRpcj1sdHIgeG1sbnM9aHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCB0cmFuc2xhdGU9bm8+IDxoZWFkPiA8bWV0YSBjaGFyc2V0PXV0Zi04PiA8bWV0YSBodHRwLWVxdWl2PVgtVUEtQ29tcGF0aWJsZSBjb250ZW50PSJJRT1lZGdlIj4gPG1ldGEgaHR0cC1lcXVpdj1wcmFnbWEgY29udGVudD1uby1jYWNoZT4gPG1ldGEgbmFtZT12aWV3cG9ydCBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsaW5pdGlhbC1zY2FsZT0xLHVzZXItc2NhbGFibGU9MCI+IDxtZXRhIG5hbWU9Z29vZ2xlIHZhbHVlPW5vdHJhbnNsYXRlPiA8bWV0YSBuYW1lPWZvcm1hdC1kZXRlY3Rpb24gY29udGVudD0idGVsZXBob25lPW5vIj4gPG1ldGEgbmFtZT1zY3JpcHRWZXIgY29udGVudD0yMDIzMDQxNDAwMi4wNT4gPG1ldGEgbmFtZT1waHlzaWNhbFJpbmcgY29udGVudD1XVz4gPG1ldGEgbmFtZT1lbnZpcm9ubWVudCBjb250ZW50PVByb2Q+IDxtZXRhIG5hbWU9Ym9vdEZsaWdodHMgY29udGVudD1md2stYW5hbHl0aWNzLWFkZG9ucyxhdXRoLWdldEF1dGhUb2tlblYyLGJvb3RmbGlnaHQxOjMzMzQ1NT4gPG1ldGEgbmFtZT1jZG5VcmwgY29udGVudD0vL3Jlcy1oMy5wdWJsaWMuY2RuLm9mZmljZS5uZXQvPiA8bWV0YSBuYW1lPWJhY2t1cENkblVybCBjb250ZW50PS8vcmVzLmNkbi5vZmZpY2UubmV0Lz4gPG1ldGEgbmFtZT1jZG5Db250YWluZXIgY29udGVudD1vd2FtYWlsLz4gPG1ldGEgbmFtZT1kZXZDZG5VcmwgY29udGVudD0+IDxtZXRhIG5hbWU9YXJpYVVybCBjb250ZW50PT4gPG1ldGEgbmFtZT13ZWJTZXJ2ZXJGb3Jlc3QgY29udGVudD1uYW1wcmQwMT4gPG1ldGEgbmFtZT13ZWJTZXJ2ZXJDbGlxdWUgY29udGVudD1DTFBST0RDWVMwMT4gPG1ldGEgbmFtZT1jb21wYWN0QXJpYVVybCBjb250ZW50PT4gPG1ldGEgbmFtZT13Y3NzRnJhbWVVcmwgY29udGVudD1odHRwczovL3dlYnNoZWxsLnN1aXRlLm9mZmljZS5jb20+IDxtZXRhIG5hbWU9d2Nzc0ZyYW1lVXJscyBjb250ZW50PXsnRGVmYXVsdFVybCc6J2h0dHBzOi8vd2Vic2hlbGwuc3VpdGUub2ZmaWNlLmNvbScsJ1d3ZGJVcmwnOidodHRwczovL3d3ZGIud2Vic2hlbGwuc3VpdGUub2ZmaWNlLmNvbScsJ0V1ZGJVcmwnOidodHRwczovL2V1ZGIud2Vic2hlbGwuc3VpdGUub2ZmaWNlLmNvbSd9PiA8bWV0YSBuYW1lPXNjcmlwdFBhdGggY29udGVudD1zY3JpcHRzLz4gPG1ldGEgbmFtZT1vd2FJc0F1dGhlbnRpY2F0ZWQgY29udGVudD17e0lzQXV0aGVudGljYXRlZH19PiA8bWV0YSBuYW1lPWpzVGltZXN0YW1wIGNvbnRlbnQ9MTY4MjM2MTcwOTEyMj4gPGxpbmsgcmVsPSJzaG9ydGN1dCBpY29uIiBocmVmPS9tYWlsL2Zhdmljb24uaWNvIHR5cGU9aW1hZ2UveC1pY29uPiA8bGluayByZWw9YXBwbGUtdG91Y2gtaWNvbiBocmVmPS8vcmVzLWgzLnB1YmxpYy5jZG4ub2ZmaWNlLm5ldC9hc3NldHMvbWFpbC9wd2EvdjEvcG5ncy9hcHBsZS10b3VjaC1pY29uLnBuZz4gPG5vc2NyaXB0PkphdmFTY3JpcHQgbXVzdCBiZSBlbmFibGVkLjwvbm9zY3JpcHQ+IDx0aXRsZT5PdXRsb29rPC90aXRsZT4gPHN0eWxlPkBmb250LWZhY2V7Zm9udC1mYW1pbHk6J1NlZ29lIFVJIFdlc3RFdXJvcGVhbic7c3JjOmxvY2FsKCdTZWdvZSBVSSBMaWdodCcpLGxvY2FsKCdTZWdvZSBXUCBMaWdodCcpLHVybCgvL3Jlcy1oMy5wdWJsaWMuY2RuLm9mZmljZS5uZXQvYXNzZXRzcy9tYWlsL2ZvbnRzL3YxL2ZvbnRzL3NlZ29ldWktbGlnaHQuZW90PyNpZWZpeCkgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLHVybCgvL3Jlcy1oMy5wdWJsaWMuY2RuLm9mZmljZS5uZXQvYXNzZXRzL21haWwvZm9udHMvdjEvZm9udHMvc2Vnb2V1aS1saWdodC53b2ZmKSBmb3JtYXQoJ3dvZmYnKSx1cmwoLy9yZXMtaDMucHVibGljLmNkbi5vZmZpY2UubmV0L2Fzc2V0cy9tYWlsL2ZvbnRzL3YxL2ZvbnRzL3NlZ29ldWktbGlnaHQudHRmKSBmb3JtYXQoJ3RydWV0eXBlJyk7Zm9udC13ZWlnaHQ6MTAwO2ZvbnQtc3R5bGU6bm9ybWFsfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6J1NlZ29lIFVJIFdlc3RFdXJvcGVhbic7c3JjOmxvY2FsKCdTZWdvZSBVSScpLGxvY2FsKCdTZWdvZSBXUCcpLHVybCgvL3Jlcy1oMy5wdWJsaWMuY2RuLm9mZmljZS5uZXQvYXNzZXRzL21haWwvZm9udHMvdjEvZm9udHMvc2Vnb2V1aS1yZWd1bGFyLmVvdD8jaWVmaXgpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSx1cmwoLy9yZXMtaDMucHVibGljLmNkbi5vZmZpY2UubmV0L2Fzc2V0cy9tYWlsL2ZvbnRzL3YxL2ZvbnRzL3NlZ29ldWktcmVndWxhci53b2ZmKSBmb3JtYXQoJ3dvZmYnKSx1cmwoLy9yZXMtaDMucHVibGljLmNkbi5vZmZpY2UubmV0L2Fzc2V0cy9tYWlsL2ZvbnRzL3YxL2ZvbnRzL3NlZ29ldWktcmVndWxhci50dGYpIGZvcm1hdCgndHJ1ZXR5cGUnKTtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWx9QGZvbnQtZmFjZXtmb250LWZhbWlseTonU2Vnb2UgVUkgV2VzdEV1cm9wZWFuJztzcmM6bG9jYWwoJ1NlZ29lIFVJIFNlbWlib2xkJyksbG9jYWwoJ1NlZ29lIFdQIFNlbWlib2xkJyksdXJsKC8vcmVzLWgzLnB1YmxpYy5jZG4ub2ZmaWNlLm5ldC9hc3NldHMvbWFpbC9mb250cy92MS9mb250cy9zZWdvZXVpLXNlbWlib2xkLmVvdD8jaWVmaXgpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSx1cmwoLy9yZXMtaDMucHVibGljLmNkbi5vZmZpY2UubmV0L2Fzc2V0cy9tYWlsL2ZvbnRzL3YxL2ZvbnRzL3NlZ29ldWktc2VtaWJvbGQud29mZikgZm9ybWF0KCd3b2ZmJyksdXJsKC8vcmVzLWgzLnB1YmxpYy5jZG4ub2ZmaWNlLm5ldC9hc3NldHMvbWFpbC9mb250cy92MS9mb250cy9zZWdvZXVpLXNlbWlib2xkLnR0ZikgZm9ybWF0KCd0cnVldHlwZScpO2ZvbnQtd2VpZ2h0OjYwMDtmb250LXN0eWxlOm5vcm1hbH1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OidTZWdvZSBVSSBXZXN0RXVyb3BlYW4nO3NyYzpsb2NhbCgnU2Vnb2UgVUkgU2VtaWxpZ2h0JyksbG9jYWwoJ1NlZ29lIFdQIFNlbWlsaWdodCcpLHVybCgvL3Jlcy1oMy5wdWJsaWMuY2RuLm9mZmljZS5uZXQvYXNzZXRzL21haWwvZm9udHMvdjEvZm9udHMvc2Vnb2V1aS1zZW1pbGlnaHQuZW90PyNpZWZpeCkgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLHVybCgvL3Jlcy1oMy5wdWJsaWMuY2RuLm9mZmljZS5uZXQvYXNzZXRzL21haWwvZm9udHMvdjEvZm9udHMvc2Vnb2V1aS1zZW1pbGlnaHQud29mZikgZm9ybWF0KCd3b2ZmJyksdXJsKC8vcmVzLWgzLnB1YmxpYy5jZG4ub2ZmaWNlLm5ldC9hc3NldHMvbWFpbC9mb250cy92MS9mb250cy9zZWdvZXVpLXNlbWlsaWdodC50dGYpIGZvcm1hdCgndHJ1ZXR5cGUnKTtmb250LXdlaWdodDoyMDA7Zm9udC1zdHlsZTpub3JtYWx9QGZvbnQtZmFjZXtmb250LWZhbWlseTpGYWJyaWNNREwySWNvbnM7c3JjOnVybCgnLy9yZXMtaDMucHVibGljLmNkbi5vZmZpY2UubmV0L293YW1haWwvMjAyMzA0MTQwMDIuMDUvcmVzb3VyY2VzL2ZvbnRzL28zNjVpY29ucy1tZGwyLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSx1cmwoJy8vcmVzLWgzLnB1YmxpYy5jZG4ub2ZmaWNlLm5ldC9vd2FtYWlsLzIwMjMwNDE0MDAyLjA1L3Jlc291cmNlcy9mb250cy9vMzY1aWNvbnMtbWRsMi50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyk7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6b2ZmaWNlMzY1aWNvbnM7c3JjOnVybCgnLy9yZXMtaDMucHVibGljLmNkbi5vZmZpY2UubmV0L293YW1haWwvMjAyMzA0MTQwMDIuMDUvcmVzb3VyY2VzL2ZvbnRzL29mZmljZTM2NWljb25zLmVvdD8nKTtzcmM6dXJsKCcvL3Jlcy1oMy5wdWJsaWMuY2RuLm9mZmljZS5uZXQvb3dhbWFpbC8yMDIzMDQxNDAwMi4wNS9yZXNvdXJjZXMvZm9udHMvb2ZmaWNlMzY1aWNvbnMuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSx1cmwoJy8vcmVzLWgzLnB1YmxpYy5jZG4ub2ZmaWNlLm5ldC9vd2FtYWlsLzIwMjMwNDE0MDAyLjA1L3Jlc291cmNlcy9mb250cy9vZmZpY2UzNjVpY29ucy53b2ZmPycpIGZvcm1hdCgnd29mZicpLHVybCgnLy9yZXMtaDMucHVibGljLmNkbi5vZmZpY2UubmV0L293YW1haWwvMjAyMzA0MTQwMDIuMDUvcmVzb3VyY2VzL2ZvbnRzL29mZmljZTM2NWljb25zLnR0Zj8nKSBmb3JtYXQoJ3RydWV0eXBlJyksdXJsKCcvL3Jlcy1oMy5wdWJsaWMuY2RuLm9mZmljZS5uZXQvb3dhbWFpbC8yMDIzMDQxNDAwMi4wNS9yZXNvdXJjZXMvZm9udHMvb2ZmaWNlMzY1aWNvbnMuc3ZnPyNvZmZpY2UzNjVpY29ucycpIGZvcm1hdCgnc3ZnJyk7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsfSNwcmVsb2FkRGl2e2hlaWdodDoxcHg7bWFyZ2luLWJvdHRvbTotMXB4O292ZXJmbG93OmhpZGRlbjt2aXNpYmlsaXR5OmhpZGRlbn0jbG9hZGluZ1NjcmVlbntwb3NpdGlvbjpmaXhlZDt0b3A6MDtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MDtiYWNrZ3JvdW5kLWNvbG9yOiNmZmZ9I2xvYWRpbmdMb2dve3Bvc2l0aW9uOmZpeGVkO3RvcDpjYWxjKDUwdmggLSA5MHB4KTtsZWZ0OmNhbGMoNTB2dyAtIDkwcHgpO3dpZHRoOjE4MHB4O2hlaWdodDoxODBweH0jTVNMb2dve3Bvc2l0aW9uOmZpeGVkO2JvdHRvbTozNnB4O2xlZnQ6Y2FsYyg1MHZ3IC0gNTBweCl9LmRhcmsgI2xvYWRpbmdTY3JlZW57YmFja2dyb3VuZC1jb2xvcjojMzMzfS5kYXJrTmV3ICNsb2FkaW5nU2NyZWVue2JhY2tncm91bmQtY29sb3I6IzFmMWYxZn08L3N0eWxlPiA8c2NyaXB0IG5vbmNlPUp0cVQvTVFpaFNreXh3ZDFYOVU4NHc9PT50cnl7IWZ1bmN0aW9uKCl7aWYoImxvY2FsU3RvcmFnZSJpbiB3aW5kb3cpe3ZhciBlPXdpbmRvdy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbSgiVXNlcnNOb3JtYWxpemVkVGhlbWUiKTtlJiYvXC5kYXJrJC8udGVzdChlKSYmZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsYXNzTGlzdC5hZGQoImRhcmsiKSxlJiYvXC5kYXJrXC5uZXckLy50ZXN0KGUpJiZkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xhc3NMaXN0LmFkZCgiZGFya05ldyIpO3ZhciB0PXdpbmRvdy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbSgiUHdhVGhlbWUiKTtpZih0KXt2YXIgYT1kb2N1bWVudC5nZXRFbGVtZW50c0J5TmFtZSgidGhlbWUtY29sb3IiKTthJiZhLmxlbmd0aCYmYVswXS5zZXRBdHRyaWJ1dGUoImNvbnRlbnQiLHQpfX19KCl9Y2F0Y2goZSl7fTwvc2NyaXB0PiA8c2NyaXB0IG5vbmNlPUp0cVQvTVFpaFNreXh3ZDFYOVU4NHc9PT5mdW5jdGlvbiBsb2dFcnJvcihvLG4scixlLGEsaSl7d2luZG93Lm93YUVycm9ySGFuZGxlcj93aW5kb3cub3dhRXJyb3JIYW5kbGVyKG8sbixyLGUsYSxpKTp3aW5kb3cub3dhQmFja2ZpbGxlZEVycm9ycy5wdXNoKGFyZ3VtZW50cyl9d2luZG93LkZhYnJpY0NvbmZpZz17Zm9udEJhc2VVcmw6bnVsbH0sd2luZG93Lm93YUJhY2tmaWxsZWRFcnJvcnM9W10sd2luZG93Lm9uZXJyb3I9bG9nRXJyb3IsIm9udW5oYW5kbGVkcmVqZWN0aW9uImluIHdpbmRvdyYmd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInVuaGFuZGxlZHJlamVjdGlvbiIsKGZ1bmN0aW9uKG8pe3ZhciBuPW8mJm8ucmVhc29ufHwiW25vIHJlYXNvbiBnaXZlbl0iO24gaW5zdGFuY2VvZiBFcnJvcj9sb2dFcnJvcigiVW5oYW5kbGVkIFJlamVjdGlvbjogIituLCIiLDAsMCxuKTpuLnJlc3BvbnNlRXJyb3JNZXNzYWdlJiZuLmNhbGxzdGFja0F0UmVxdWVzdCYmbiBpbnN0YW5jZW9mIFJlc3BvbnNlP2xvZ0Vycm9yKG4ucmVzcG9uc2VFcnJvck1lc3NhZ2UsIiIsdm9pZCAwLHZvaWQgMCx2b2lkIDAsbi5jYWxsc3RhY2tBdFJlcXVlc3QpOmxvZ0Vycm9yKCJVbmhhbmRsZWQgUmVqZWN0aW9uOiAiKygic3RyaW5nIj09dHlwZW9mIG4/bjpKU09OLnN0cmluZ2lmeShuKSkpfSkpLHdpbmRvdy5vbmxvYWQ9ZnVuY3Rpb24oKXt0cnl7IXNlbGYuT3dhJiZzZWxmLmxvY2F0aW9uJiZzZWxmLmxvY2F0aW9uLnNlYXJjaCYmLTE9PXNlbGYubG9jYXRpb24uc2VhcmNoLmluZGV4T2YoImd1bHAiKSYmd2luZG93LmxvY2F0aW9uLmFzc2lnbigiL293YS9hdXRoL2Zyb3dueS5hc3B4P2JyZXQ9ZmFpbCZlc3JjPUluZGV4UGFnZUluY29tcGxldGUmYXBwPU1haWwiKX1jYXRjaChvKXt9fTwvc2NyaXB0PiA8c2NyaXB0IG5vbmNlPUp0cVQvTVFpaFNreXh3ZDFYOVU4NHc9PT50cnl7IWZ1bmN0aW9uKCl7aWYoIlBlcmZvcm1hbmNlTG9uZ1Rhc2tUaW1pbmciaW4gd2luZG93KXt2YXIgZT13aW5kb3cuX190dGk9e2U6W119O2Uubz1uZXcgUGVyZm9ybWFuY2VPYnNlcnZlcigoZnVuY3Rpb24obil7ZS5lPWUuZS5jb25jYXQobi5nZXRFbnRyaWVzKCkpfSkpLGUuby5vYnNlcnZlKHtlbnRyeVR5cGVzOlsibG9uZ3Rhc2siXX0pfX0oKX1jYXRjaChlKXt9PC9zY3JpcHQ+IDxsaW5rIGludGVncml0eT0ic2hhMzg0LWpWbnJHTlB1T3B0TEZ2NkpBMDhiTzN0T0tBQU9KT1ZJL1F6WUQ3YWxRRzRNTTkvclFqN0l6RXdPSnhCRUQ1WTUiIHJlbD0icHJlbG9hZCIgaHJlZj0iLy9yZXMtaDMucHVibGljLmNkbi5vZmZpY2UubmV0L293YW1haWwvMjAyMzA0MTQwMDIuMDUvc2NyaXB0cy9vd2EudmVuLmV4dGZyYW1ld29yay5tLmpzIiBhcz0ic2NyaXB0IiBjcm9zc29yaWdpbj0iYW5vbnltb3VzIi8+PGxpbmsgaW50ZWdyaXR5PSJzaGEzODQtNVloSjd4V08xL3FGTFFkcG9SaE9IVHVZOGxWUVI3Y2d5QUpmdytEYlJXSWtHLzRIZEhXVDFlUWdmOEVtSEp5RyIgcmVsPSJwcmVsb2FkIiBocmVmPSIvL3Jlcy1oMy5wdWJsaWMuY2RuLm9mZmljZS5uZXQvb3dhbWFpbC8yMDIzMDQxNDAwMi4wNS9zY3JpcHRzL293YS52ZW4uZ3JhcGhxbC5tLmpzIiBhcz0ic2NyaXB0IiBjcm9zc29yaWdpbj0iYW5vbnltb3VzIi8+PGxpbmsgaW50ZWdyaXR5PSJzaGEzODQtU001dFdYaEFjL1NCQTE5eUxNNHJvZXJ1SDRPS1pYZmRxYW8zVWsxM1F3R2FGaTdQTVAvT3REMEpmOVRHcmhjNiIgcmVsPSJwcmVsb2FkIiBocmVmPSIvL3Jlcy1oMy5wdWJsaWMuY2RuLm9mZmljZS5uZXQvb3dhbWFpbC8yMDIzMDQxNDAwMi4wNS9zY3JpcHRzL293YS52ZW4uZmx1ZW50Lm0uanMiIGFzPSJzY3JpcHQiIGNyb3Nzb3JpZ2luPSJhbm9ueW1vdXMiLz48bGluayBpbnRlZ3JpdHk9InNoYTM4NC1MdGdsUnFNamtLbGNteEJZTTRGVlFkRXRIM2FFamtYZWx0YzJKMkZWZWFxL3JydiszQlR0K1BsaktMVTI3WllNIiByZWw9InByZWxvYWQiIGhyZWY9Ii8vcmVzLWgzLnB1YmxpYy5jZG4ub2ZmaWNlLm5ldC9vd2FtYWlsLzIwMjMwNDE0MDAyLjA1L3NjcmlwdHMvb3dhLnZlbi5mbHVlbnRJY29ucy5tLmpzIiBhcz0ic2NyaXB0IiBjcm9zc29yaWdpbj0iYW5vbnltb3VzIi8+PGxpbmsgaW50ZWdyaXR5PSJzaGEzODQtdVU2S085aHZlZFc5K2lDalU5Q1BRMmxWZUVFVkxONGJLUjVBeDRwZXVmVDMxUjJVQVhDNVBaY1hqZEtuclE1NyIgcmVsPSJwcmVsb2FkIiBocmVmPSIvL3Jlcy1oMy5wdWJsaWMuY2RuLm9mZmljZS5uZXQvb3dhbWFpbC8yMDIzMDQxNDAwMi4wNS9zY3JpcHRzL293YS43NzU0ODIubS5qcyIgYXM9InNjcmlwdCIgY3Jvc3NvcmlnaW49ImFub255bW91cyIvPjxsaW5rIGludGVncml0eT0ic2hhMzg0LWlnQWF6b3NIenZHUHI2aGJmd2FHYlpNV0MvVStRdVNFNkpVOGg2VEFnSDdUNnhKQWxRNnpidm53ZFNoSGVLd0QiIHJlbD0icHJlbG9hZCIgaHJlZj0iLy9yZXMtaDMucHVibGljLmNkbi5vZmZpY2UubmV0L293YW1haWwvMjAyMzA0MTQwMDIuMDUvc2NyaXB0cy9vd2EuODgyMjcwLm0uanMiIGFzPSJzY3JpcHQiIGNyb3Nzb3JpZ2luPSJhbm9ueW1vdXMiLz48bGluayBpbnRlZ3JpdHk9InNoYTM4NC12UU9jdGttL3VBWjF1QktsNVNzOERrcVh6emNmeThib3YxdDR2SkFJc3pTSnNPNUt4b1E1RVNqZ2swanR2Q2poIiByZWw9InByZWxvYWQiIGhyZWY9Ii8vcmVzLWgzLnB1YmxpYy5jZG4ub2ZmaWNlLm5ldC9vd2FtYWlsLzIwMjMwNDE0MDAyLjA1L3NjcmlwdHMvb3dhLjE1OTUxMC5tLmpzIiBhcz0ic2NyaXB0IiBjcm9zc29yaWdpbj0iYW5vbnltb3VzIi8+PGxpbmsgaW50ZWdyaXR5PSJzaGEzODQtblJtME9hd0ZseDAwY0pBWVAwTVNSaEFvVDNxckMrZm9nbWhNRGwxQ1N2bmZzelcvUFY3Z2NIcFRlVFFyMWVqRiIgcmVsPSJwcmVsb2FkIiBocmVmPSIvL3Jlcy1oMy5wdWJsaWMuY2RuLm9mZmljZS5uZXQvb3dhbWFpbC8yMDIzMDQxNDAwMi4wNS9zY3JpcHRzL293YS4xNTU4NjYubS5qcyIgYXM9InNjcmlwdCIgY3Jvc3NvcmlnaW49ImFub255bW91cyIvPjxsaW5rIGludGVncml0eT0ic2hhMzg0LVg2YnFGaVZiTDdRSW9NMUJFbWhSWU1md1VCN3hDV2RYMTh3QWg2RmpBVi9VbnB1SyszN0w3UlVQYTNhekJiYVAiIHJlbD0icHJlbG9hZCIgaHJlZj0iLy9yZXMtaDMucHVibGljLmNkbi5vZmZpY2UubmV0L293YW1haWwvMjAyMzA0MTQwMDIuMDUvc2NyaXB0cy9vd2EuNDk0MDQ0Lm0uanMiIGFzPSJzY3JpcHQiIGNyb3Nzb3JpZ2luPSJhbm9ueW1vdXMiLz48bGluayBpbnRlZ3JpdHk9InNoYTM4NC1HYlVJcDcyZlhDNkRySHdOSGhWSWhQbHRxdmM3dWRWdFFRSFFjNXpZQ1NRVmxQWlExWHV4NS9nWUdzb01pWWpQIiByZWw9InByZWxvYWQiIGhyZWY9Ii8vcmVzLWgzLnB1YmxpYy5jZG4ub2ZmaWNlLm5ldC9vd2FtYWlsLzIwMjMwNDE0MDAyLjA1L3NjcmlwdHMvb3dhLjIzOTI2My5tLmpzIiBhcz0ic2NyaXB0IiBjcm9zc29yaWdpbj0iYW5vbnltb3VzIi8+PGxpbmsgaW50ZWdyaXR5PSJzaGEzODQtdDFONmRzMno1MlBwVmZpZyt3M2Fxc0p4YWs0K1VPVE5jMm5tTkRmaWsxeVRHbmJ0cGltbm9CbkxUMVFIU3ZwUiIgcmVsPSJwcmVsb2FkIiBocmVmPSIvL3Jlcy1oMy5wdWJsaWMuY2RuLm9mZmljZS5uZXQvb3dhbWFpbC8yMDIzMDQxNDAwMi4wNS9zY3JpcHRzL293YS41OTg5Lm0uanMiIGFzPSJzY3JpcHQiIGNyb3Nzb3JpZ2luPSJhbm9ueW1vdXMiLz48bGluayBpbnRlZ3JpdHk9InNoYTM4NC14VlR0TFhzTUpmb202VGNnTnRDVHl4YWVCQmY2bDM5Mnl5VWlzMGV0OE00OWRHbUlTUTl3Y2hpRUZxcUkvR1M0IiByZWw9InByZWxvYWQiIGhyZWY9Ii8vcmVzLWgzLnB1YmxpYy5jZG4ub2ZmaWNlLm5ldC9vd2FtYWlsLzIwMjMwNDE0MDAyLjA1L3NjcmlwdHMvb3dhLjk5NTI0My5tLmpzIiBhcz0ic2NyaXB0IiBjcm9zc29yaWdpbj0iYW5vbnltb3VzIi8+PGxpbmsgaW50ZWdyaXR5PSJzaGEzODQtV2s1Q1RXWHdYL1dWbjNMaU5BeXVaZ1BTcVdVK09Icm1RWXh2NFpRRGFjTm0vOGkxMzVRbVhuWGNmUG1xbU9ENSIgcmVsPSJwcmVsb2FkIiBocmVmPSIvL3Jlcy1oMy5wdWJsaWMuY2RuLm9mZmljZS5uZXQvb3dhbWFpbC8yMDIzMDQxNDAwMi4wNS9zY3JpcHRzL293YS4yMDk0MTUubS5qcyIgYXM9InNjcmlwdCIgY3Jvc3NvcmlnaW49ImFub255bW91cyIvPjxsaW5rIGludGVncml0eT0ic2hhMzg0LVR6dDZ2VURiS1RuQ3Zad2NrS1hCNUpKcWIyUm1Fd0o4T0dXdGNuZ3JDZENsL2J2TTRlL0RhbHFWb1R4RHU4djUiIHJlbD0icHJlbG9hZCIgaHJlZj0iLy9yZXMtaDMucHVibGljLmNkbi5vZmZpY2UubmV0L293YW1haWwvMjAyMzA0MTQwMDIuMDUvc2NyaXB0cy9vd2EuMzI4ODA3Lm0uanMiIGFzPSJzY3JpcHQiIGNyb3Nzb3JpZ2luPSJhbm9ueW1vdXMiLz48bGluayBpbnRlZ3JpdHk9InNoYTM4NC16MXRqODVYdjQzU1c4cTlHQ3N4TS9HYWxWeWMzZWhMcGY5YVlKa053UGxNNW9RbjZjN3RPTzRiTXFFTXVwZjFrIiByZWw9InByZWxvYWQiIGhyZWY9Ii8vcmVzLWgzLnB1YmxpYy5jZG4ub2ZmaWNlLm5ldC9vd2FtYWlsLzIwMjMwNDE0MDAyLjA1L3NjcmlwdHMvb3dhLjYxMDEyNS5tLmpzIiBhcz0ic2NyaXB0IiBjcm9zc29yaWdpbj0iYW5vbnltb3VzIi8+PGxpbmsgaW50ZWdyaXR5PSJzaGEzODQtVytlbjdpTFlsTTRhdlpJZitZZDh2M01CWEJaRFY3MTNQbEJWMVJLUksvMnNSNE1Oanh4cGV4ZTB1QUlNV3hHbyIgcmVsPSJwcmVsb2FkIiBocmVmPSIvL3Jlcy1oMy5wdWJsaWMuY2RuLm9mZmljZS5uZXQvb3dhbWFpbC8yMDIzMDQxNDAwMi4wNS9zY3JpcHRzL293YS42NzIyMDMubS5qcyIgYXM9InNjcmlwdCIgY3Jvc3NvcmlnaW49ImFub255bW91cyIvPjxsaW5rIGludGVncml0eT0ic2hhMzg0LXBPOHhtV3RHWlc3aW90dGFLSTVYSytWZVE1QnhkZU1tdUx5SUIzVzRRTEp0UTJJMjdoeUROMXRtNHJyZzlvalYiIHJlbD0icHJlbG9hZCIgaHJlZj0iLy9yZXMtaDMucHVibGljLmNkbi5vZmZpY2UubmV0L293YW1haWwvMjAyMzA0MTQwMDIuMDUvc2NyaXB0cy9vd2EuNjEyMDYxLm0uanMiIGFzPSJzY3JpcHQiIGNyb3Nzb3JpZ2luPSJhbm9ueW1vdXMiLz48bGluayBpbnRlZ3JpdHk9InNoYTM4NC0rYzByTkZ1VDlSdC83dmw2NjM3UHVOSzQ2bWl0RkdGVDkyamJ3TjRMb255VGRaeGZ1bXJWZE9DVmFnbWMxeUNqIiByZWw9InByZWxvYWQiIGhyZWY9Ii8vcmVzLWgzLnB1YmxpYy5jZG4ub2ZmaWNlLm5ldC9vd2FtYWlsLzIwMjMwNDE0MDAyLjA1L3NjcmlwdHMvb3dhLjMwMDE3NC5tLmpzIiBhcz0ic2NyaXB0IiBjcm9zc29yaWdpbj0iYW5vbnltb3VzIi8+PGxpbmsgaW50ZWdyaXR5PSJzaGEzODQtV2FDMk03bEs4Z3BJSk91WllpVFROQW1ZUDhIb3JOdG5PV2NhU24yNEdUNDNVdU9MMHpXYXVrU2dkV0U3dmhrVSIgcmVsPSJwcmVsb2FkIiBocmVmPSIvL3Jlcy1oMy5wdWJsaWMuY2RuLm9mZmljZS5uZXQvb3dhbWFpbC8yMDIzMDQxNDAwMi4wNS9zY3JpcHRzL293YS4zODgxMzQubS5qcyIgYXM9InNjcmlwdCIgY3Jvc3NvcmlnaW49ImFub255bW91cyIvPjxsaW5rIGludGVncml0eT0ic2hhMzg0LUZ3bFp5TmQrS1Q2TDdSVEdEZE52bUlyZmNVbUxtd211UTZ1ejdFTlAzNUtPS0NhVVVqQjc3MHlvVVJtc01TY1QiIHJlbD0icHJlbG9hZCIgaHJlZj0iLy9yZXMtaDMucHVibGljLmNkbi5vZmZpY2UubmV0L293YW1haWwvMjAyMzA0MTQwMDIuMDUvc2NyaXB0cy9vd2EuU2hhcmVkQm9vdC5tLmNzcyIgYXM9InN0eWxlIiBjcm9zc29yaWdpbj0iYW5vbnltb3VzIi8+PGxpbmsgaW50ZWdyaXR5PSJzaGEzODQtYkx6bTFpc2NFdytQNWlHV1JBMWNRMVk5ZUdjWVBVUDhLT2JNRk9tck9ZMmdUSzBabW96cU9LUGxFTGhnOUh0bSIgcmVsPSJwcmVsb2FkIiBocmVmPSIvL3Jlcy1oMy5wdWJsaWMuY2RuLm9mZmljZS5uZXQvb3dhbWFpbC8yMDIzMDQxNDAwMi4wNS9zY3JpcHRzL293YS5TaGFyZWRCb290Lm0uanMiIGFzPSJzY3JpcHQiIGNyb3Nzb3JpZ2luPSJhbm9ueW1vdXMiLz48bGluayBpbnRlZ3JpdHk9InNoYTM4NC1nSlozanZJYnlGSGxFdnJUSVAwYmtjTDh0N1U0OElGYTk0S0cyeTBKL3Vmb0ZvTkJvcUo5QTAzTEdna3U3UTFBIiByZWw9InByZWxvYWQiIGhyZWY9Ii8vcmVzLWgzLnB1YmxpYy5jZG4ub2ZmaWNlLm5ldC9vd2FtYWlsLzIwMjMwNDE0MDAyLjA1L3NjcmlwdHMvb3dhLjk1NjMzNy5tLmpzIiBhcz0ic2NyaXB0IiBjcm9zc29yaWdpbj0iYW5vbnltb3VzIi8+PGxpbmsgaW50ZWdyaXR5PSJzaGEzODQtZVFkUTI5dk1SRVJZajg4V0ttQjIrZFB4N0JTdW5jZFVGNWtWRlZOd0Y5dThuM2tDbktwc3l4SWpxTXZMTTRaaSIgcmVsPSJwcmVsb2FkIiBocmVmPSIvL3Jlcy1oMy5wdWJsaWMuY2RuLm9mZmljZS5uZXQvb3dhbWFpbC8yMDIzMDQxNDAwMi4wNS9zY3JpcHRzL293YS41NzkyMzgubS5qcyIgYXM9InNjcmlwdCIgY3Jvc3NvcmlnaW49ImFub255bW91cyIvPjxsaW5rIGludGVncml0eT0ic2hhMzg0LVNyMU9pdjR3Q2lSUHZycGFMNTg2ZVpaUGs5ZzZnWGRFQU1WblBKNHlJY2ZkOHJXS3BKbTBGQTlvTjhUQkk0b1MiIHJlbD0icHJlbG9hZCIgaHJlZj0iLy9yZXMtaDMucHVibGljLmNkbi5vZmZpY2UubmV0L293YW1haWwvMjAyMzA0MTQwMDIuMDUvc2NyaXB0cy9vd2EuMTYwMjUubS5qcyIgYXM9InNjcmlwdCIgY3Jvc3NvcmlnaW49ImFub255bW91cyIvPjxsaW5rIGludGVncml0eT0ic2hhMzg0LXFrZU94N0VWT1BNRmptTDBIQkE1T2xnWm1lMElXT2FSRDJSRW12dWEwdFFUekZudWV5QldBUzBERnFCT0RYQloiIHJlbD0icHJlbG9hZCIgaHJlZj0iLy9yZXMtaDMucHVibGljLmNkbi5vZmZpY2UubmV0L293YW1haWwvMjAyMzA0MTQwMDIuMDUvc2NyaXB0cy9vd2EuMTg4MzgubS5qcyIgYXM9InNjcmlwdCIgY3Jvc3NvcmlnaW49ImFub255bW91cyIvPjxsaW5rIGludGVncml0eT0ic2hhMzg0LXVIOE5paHNTSnlseGNjRHpTS1I2V1JKcE5uM3lLaHdGM0pLT0NkbDJIRXJKNEZodlBDU25EYUVXN29aZzc0SXgiIHJlbD0icHJlbG9hZCIgaHJlZj0iLy9yZXMtaDMucHVibGljLmNkbi5vZmZpY2UubmV0L293YW1haWwvMjAyMzA0MTQwMDIuMDUvc2NyaXB0cy9vd2EuNDU1ODUwLm0uanMiIGFzPSJzY3JpcHQiIGNyb3Nzb3JpZ2luPSJhbm9ueW1vdXMiLz48bGluayBpbnRlZ3JpdHk9InNoYTM4NC1ZaW12Q3lNdlNPZFZaelA2b3BXT0t5UHp2UStnTHFSbGU2RVFkZEJ2dHM1aGF1cGUzVVZBOUszMk02QmtnM0YyIiByZWw9InByZWxvYWQiIGhyZWY9Ii8vcmVzLWgzLnB1YmxpYy5jZG4ub2ZmaWNlLm5ldC9vd2FtYWlsLzIwMjMwNDE0MDAyLjA1L3NjcmlwdHMvb3dhLjczMzYxNS5tLmpzIiBhcz0ic2NyaXB0IiBjcm9zc29yaWdpbj0iYW5vbnltb3VzIi8+PGxpbmsgaW50ZWdyaXR5PSJzaGEzODQtcUM1dXBDNlRSWWhNZHNwOXRUYVI3c21mSU9aS3NNNnV0dm5sRUdleWliamhJSlpYZkY2aUVhMVdFV1NKdU1BcSIgcmVsPSJwcmVsb2FkIiBocmVmPSIvL3Jlcy1oMy5wdWJsaWMuY2RuLm9mZmljZS5uZXQvb3dhbWFpbC8yMDIzMDQxNDAwMi4wNS9zY3JpcHRzL293YS4yMTc0ODMubS5qcyIgYXM9InNjcmlwdCIgY3Jvc3NvcmlnaW49ImFub255bW91cyIvPjxsaW5rIGludGVncml0eT0ic2hhMzg0LU1VSmNZRTRua0FKcWF5T1FMa2xKWll0b0ZZUzlGQXFSeTBtWDhkWFdwYXorMjRqZkgxVUY2cG52bnlTdnlHWUYiIHJlbD0icHJlbG9hZCIgaHJlZj0iLy9yZXMtaDMucHVibGljLmNkbi5vZmZpY2UubmV0L293YW1haWwvMjAyMzA0MTQwMDIuMDUvc2NyaXB0cy9vd2EuMzQyMTA2Lm0uanMiIGFzPSJzY3JpcHQiIGNyb3Nzb3JpZ2luPSJhbm9ueW1vdXMiLz48bGluayBpbnRlZ3JpdHk9InNoYTM4NC1kSS9YcysxcWJDOVJlTE0rNEliNWw2d25nenZPU1VhSDdhakNHalB5ZFNKd0FBbGtOWEowaFNNeHBlV3ZMQkVoIiByZWw9InByZWxvYWQiIGhyZWY9Ii8vcmVzLWgzLnB1YmxpYy5jZG4ub2ZmaWNlLm5ldC9vd2FtYWlsLzIwMjMwNDE0MDAyLjA1L3NjcmlwdHMvb3dhLjMwOTU5OC5tLmpzIiBhcz0ic2NyaXB0IiBjcm9zc29yaWdpbj0iYW5vbnltb3VzIi8+PGxpbmsgaW50ZWdyaXR5PSJzaGEzODQtR0Q5MEt1OTFndUJwWkRHbVY5Y1N4N0JMcDR0WXRxWjhZclRJTzJ1cElIUElDcEdDZnJZWTZCa1g3TXJjK3BvSiIgcmVsPSJwcmVsb2FkIiBocmVmPSIvL3Jlcy1oMy5wdWJsaWMuY2RuLm9mZmljZS5uZXQvb3dhbWFpbC8yMDIzMDQxNDAwMi4wNS9zY3JpcHRzL293YS44NjI2MDAubS5qcyIgYXM9InNjcmlwdCIgY3Jvc3NvcmlnaW49ImFub255bW91cyIvPjxsaW5rIGludGVncml0eT0ic2hhMzg0LW10d3htdmlNTlVCQVRQVzBVaUk1eFZ6UVVTWXQwbkQxdFJDZlh5QkVjbVNPdzI5b1NXcW1WQ2VkT2txZzdsbXAiIHJlbD0icHJlbG9hZCIgaHJlZj0iLy9yZXMtaDMucHVibGljLmNkbi5vZmZpY2UubmV0L293YW1haWwvMjAyMzA0MTQwMDIuMDUvc2NyaXB0cy9vd2EuMjY5MTg3Lm0uanMiIGFzPSJzY3JpcHQiIGNyb3Nzb3JpZ2luPSJhbm9ueW1vdXMiLz48bGluayBpbnRlZ3JpdHk9InNoYTM4NC10UHFlWkhQS2hSMWdFY0NKY1YyM0dOcXJwVkdJNlBKSnZQR25DbitWQUtDcTdidDFCaUdRdXJJWGZPTGQ2RUZ6IiByZWw9InByZWxvYWQiIGhyZWY9Ii8vcmVzLWgzLnB1YmxpYy5jZG4ub2ZmaWNlLm5ldC9vd2FtYWlsLzIwMjMwNDE0MDAyLjA1L3NjcmlwdHMvb3dhLjM5OTQ1OC5tLmpzIiBhcz0ic2NyaXB0IiBjcm9zc29yaWdpbj0iYW5vbnltb3VzIi8+PGxpbmsgaW50ZWdyaXR5PSJzaGEzODQtT25nSkJLN3BQSGdpaHAvV0EvUGRmUmsrcUhWOVpMaDFXaXZxN2ppS0NDRFB0TGF5OHlZb3hZaVZsem1hQ09wZiIgcmVsPSJwcmVsb2FkIiBocmVmPSIvL3Jlcy1oMy5wdWJsaWMuY2RuLm9mZmljZS5uZXQvb3dhbWFpbC8yMDIzMDQxNDAwMi4wNS9zY3JpcHRzL293YS5NYWlsQm9vdC5tLmNzcyIgYXM9InN0eWxlIiBjcm9zc29yaWdpbj0iYW5vbnltb3VzIi8+PGxpbmsgaW50ZWdyaXR5PSJzaGEzODQtWWhheTc2d0FTZ1VSR0YvektxNEkrdUF0WjRoUVZwV3p2amJtTnZZMWRPdkp6ZzBmV3FQdXZFVyttZStBTHB4TCIgcmVsPSJwcmVsb2FkIiBocmVmPSIvL3Jlcy1oMy5wdWJsaWMuY2RuLm9mZmljZS5uZXQvb3dhbWFpbC8yMDIzMDQxNDAwMi4wNS9zY3JpcHRzL293YS5NYWlsQm9vdC5tLmpzIiBhcz0ic2NyaXB0IiBjcm9zc29yaWdpbj0iYW5vbnltb3VzIi8+PGxpbmsgaW50ZWdyaXR5PSJzaGEzODQtYmVuZGZpY3pNajllQkR3Zkw5QkdFVllIU0Q0QktCVWUzLzBVRHZZWUpxaW1RU2JZalg0TFVmdTAwMVNvOTRYMyIgcmVsPSJwcmVsb2FkIiBocmVmPSIvL3Jlcy1oMy5wdWJsaWMuY2RuLm9mZmljZS5uZXQvb3dhbWFpbC8yMDIzMDQxNDAwMi4wNS9zY3JpcHRzL293YS5NYWlsUm91dGVzLm0uanMiIGFzPSJzY3JpcHQiIGNyb3Nzb3JpZ2luPSJhbm9ueW1vdXMiLz48c2NyaXB0IG5vbmNlPSJKdHFUL01RaWhTa3l4d2QxWDlVODR3PT0iPi8qISBGb3IgbGljZW5zZSBpbmZvcm1hdGlvbiBwbGVhc2Ugc2VlIG93YS5tYWlsaW5kZXguanMuTElDRU5TRS50eHQgKi8KKCgpPT57dmFyIGUsdCxuLHIsbz17NTY2MTI6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0IjtuLmQodCx7XzooKT0+Z30pO3ZhciByPW4oNjA0MTkxKTtjb25zdCBvPW5ldyByLkhkKCgoKT0+UHJvbWlzZS5hbGwoW24uZSg5MjU2NzEpLG4uZSgyMDM5MTgpLG4uZSg1MjYzNyksbi5lKDkzMjU1Nyksbi5lKDk1NjMzNyksbi5lKDU3OTIzOCksbi5lKDE2MDI1KSxuLmUoMTg4MzgpLG4uZSg0NTU4NTApLG4uZSg3MzM2MTUpLG4uZSgyMTc0ODMpLG4uZSgzNDIxMDYpLG4uZSgzMDk1OTgpLG4uZSg4NjI2MDApLG4uZSg3NzU0ODIpLG4uZSgyNjkxODcpLG4uZSg4ODIyNzApLG4uZSgzOTk0NTgpLG4uZSgxNTk1MTApLG4uZSg1MDE2OTcpXSkudGhlbihuLmJpbmQobiw5NDMxMzkpKSkpLGk9bmV3IHIuXzUobywoZT0+ZS5nZXRNYWlsQm9vdHN0cmFwT3B0aW9ucykpLGE9bmV3IHIuSGQoKCgpPT5Qcm9taXNlLmFsbChbbi5lKDkyNTY3MSksbi5lKDIwMzkxOCksbi5lKDUyNjM3KSxuLmUoOTMyNTU3KSxuLmUoOTU2MzM3KSxuLmUoNTc5MjM4KSxuLmUoMTYwMjUpLG4uZSgxODgzOCksbi5lKDQ1NTg1MCksbi5lKDczMzYxNSksbi5lKDIxNzQ4Myksbi5lKDMwOTU5OCksbi5lKDg2MjYwMCksbi5lKDc3NTQ4Miksbi5lKDI2OTE4Nyksbi5lKDI5MTk5Miksbi5lKDg4MjI3MCksbi5lKDM5OTQ1OCksbi5lKDE1OTUxMCksbi5lKDkxNzM1MildKS50aGVuKG4uYmluZChuLDI3ODIwNykpKSkscz1uZXcgci5fNShhLChlPT5lLmdldENhbGVuZGFyQm9vdHN0cmFwT3B0aW9ucykpLGM9bmV3IHIuSGQoKCgpPT5Qcm9taXNlLmFsbChbbi5lKDkyNTY3MSksbi5lKDUyNjM3KSxuLmUoOTMyNTU3KSxuLmUoNTk4OSksbi5lKDM0ODEzOSksbi5lKDIwOTQxNSksbi5lKDkzNjkxNSksbi5lKDgyNzY3MCksbi5lKDY3MjIwMyksbi5lKDYxMjA2MSksbi5lKDIyNjc4KSxuLmUoNDg0NDkxKSxuLmUoOTg2NTIpLG4uZSg0ODgyOTApLG4uZSg4OTMyNDYpLG4uZSg0MDc0NzEpLG4uZSg3OTY2NjApLG4uZSgzMjQ1ODgpLG4uZSgzNjk5NjIpLG4uZSg5OTAzOTcpXSkudGhlbihuLmJpbmQobiw5NTUyNTUpKSkpLHU9bmV3IHIuXzUoYywoZT0+ZS5nZXRQZW9wbGVCb290c3RyYXBPcHRpb25zKSksbD1uZXcgci5IZCgoKCk9PlByb21pc2UuYWxsKFtuLmUoOTI1NjcxKSxuLmUoNTI2MzcpLG4uZSg5MzI1NTcpLG4uZSg5NTYzMzcpLG4uZSg1NzkyMzgpLG4uZSgxNjAyNSksbi5lKDE4ODM4KSxuLmUoNDU1ODUwKSxuLmUoNzMzNjE1KSxuLmUoMjE3NDgzKSxuLmUoODYyNjAwKSxuLmUoNzc1NDgyKSxuLmUoODgyMjcwKSxuLmUoMzk5NDU4KSxuLmUoNDk0MDQ0KSxuLmUoMjM5MjYzKSxuLmUoNzkxNTY2KSxuLmUoNTk4OSksbi5lKDk5NTI0Myksbi5lKDIwNzMzKV0pLnRoZW4obi5iaW5kKG4sNzYyMzQpKSkpLEg9bmV3IHIuXzUobCwoZT0+ZS5nZXRGaWxlc0Jvb3RzdHJhcE9wdGlvbnMpKSxkPW5ldyByLkhkKCgoKT0+UHJvbWlzZS5hbGwoW24uZSg5MjU2NzEpLG4uZSgyMDM5MTgpLG4uZSg1MjYzNyksbi5lKDkzMjU1Nyksbi5lKDU3OTIzOCksbi5lKDE2MDI1KSxuLmUoMTg4MzgpLG4uZSg0NTU4NTApLG4uZSg3MzM2MTUpLG4uZSgyMTc0ODMpLG4uZSgzMDk1OTgpLG4uZSg3NzU0ODIpLG4uZSgyNjkxODcpLG4uZSg4ODIyNzApLG4uZSgxNTk1MTApLG4uZSg0MzY4NTYpLG4uZSgxNTU4NjYpLG4uZSg0OTQwNDQpLG4uZSgyMzkyNjMpLG4uZSg3OTU4NzUpXSkudGhlbihuLmJpbmQobiw3OTQzMjEpKSkpLGY9bmV3IHIuXzUoZCwoZT0+ZS5nZXRNYWlsRGVlcExpbmtCb290c3RyYXBPcHRpb25zKSksUz1uZXcgci5IZCgoKCk9PlByb21pc2UuYWxsKFtuLmUoOTI1NjcxKSxuLmUoMjAzOTE4KSxuLmUoNTI2MzcpLG4uZSg5MzI1NTcpLG4uZSg1NzkyMzgpLG4uZSgxNjAyNSksbi5lKDE4ODM4KSxuLmUoNDU1ODUwKSxuLmUoNzMzNjE1KSxuLmUoMjE3NDgzKSxuLmUoNzc1NDgyKSxuLmUoODgyMjcwKSxuLmUoMjM5MjYzKSxuLmUoNTk4OSksbi5lKDIwOTQxNSksbi5lKDY3MjIwMyksbi5lKDMxNzkzOSksbi5lKDk5NDAxNCksbi5lKDUyNzMwNCksbi5lKDEzNjgxMildKS50aGVuKG4uYmluZChuLDc3MjkxMSkpKSkscD1uZXcgci5fNShTLChlPT5lLmdldEFwcEhvc3RCb290c3RyYXBPcHRpb25zKSksQz1uZXcgci5IZCgoKCk9PlByb21pc2UuYWxsKFtuLmUoOTI1NjcxKSxuLmUoMjAzOTE4KSxuLmUoNTI2MzcpLG4uZSg0OTQwNDQpLG4uZSgyMzkyNjMpLG4uZSg5OTUyNDMpLG4uZSgzMjg4MDcpLG4uZSg2MTAxMjUpLG4uZSg2NzIyMDMpLG4uZSg2MTIwNjEpLG4uZSgzMDAxNzQpLG4uZSg0ODQ0OTEpLG4uZSg5MTU1NjYpLG4uZSg5ODY1Miksbi5lKDQ4ODI5MCksbi5lKDE0MjE5MCksbi5lKDg5MzI0Niksbi5lKDQwNzQ3MSksbi5lKDc5NjY2MCksbi5lKDYxNDI0MCldKS50aGVuKG4uYmluZChuLDU1NTc0MCkpKSksdj1uZXcgci5fNShDLChlPT5lLmdldENhbGVuZGFyRGVlcExpbmtCb290c3RyYXBPcHRpb25zKSksaD1uZXcgci5IZCgoKCk9PlByb21pc2UuYWxsKFtuLmUoOTI1NjcxKSxuLmUoMjAzOTE4KSxuLmUoNTI2MzcpLG4uZSg5MzI1NTcpLG4uZSg5NTYzMzcpLG4uZSg1NzkyMzgpLG4uZSgxNjAyNSksbi5lKDE4ODM4KSxuLmUoNDU1ODUwKSxuLmUoNzMzNjE1KSxuLmUoMjE3NDgzKSxuLmUoMzQyMTA2KSxuLmUoMzA5NTk4KSxuLmUoODYyNjAwKSxuLmUoNzc1NDgyKSxuLmUoMjkxOTkyKSxuLmUoODgyMjcwKSxuLmUoNjYyMTk5KSxuLmUoMzk5NDU4KSxuLmUoNTU4ZTMpXSkudGhlbihuLmJpbmQobiwyOTQ2OTUpKSkpLG09bmV3IHIuXzUoaCwoZT0+ZS5nZXRHcm91cHNCb290c3RyYXBPcHRpb25zKSksST1uZXcgci5fNShuZXcgci5IZCgoKCk9PlByb21pc2UuYWxsKFtuLmUoOTI1NjcxKSxuLmUoMjAzOTE4KSxuLmUoNTI2MzcpLG4uZSg0OTQwNDQpLG4uZSgyMzkyNjMpLG4uZSg5OTUyNDMpLG4uZSgzMjg4MDcpLG4uZSg2MTAxMjUpLG4uZSg2NzIyMDMpLG4uZSg2MTIwNjEpLG4uZSgzMDAxNzQpLG4uZSg0ODQ0OTEpLG4uZSg5MTU1NjYpLG4uZSg5ODY1Miksbi5lKDQ4ODI5MCksbi5lKDE0MjE5MCksbi5lKDQwNzQ3MSksbi5lKDc5NjY2MCksbi5lKDMyNDU4OCksbi5lKDYxNjU5NCldKS50aGVuKG4uYmluZChuLDg0OTcxNCkpKSksKGU9PmUuZ2V0RXZlbnRpZnlCb290c3RyYXBPcHRpb25zKSksQT1uZXcgci5IZCgoKCk9PlByb21pc2UuYWxsKFtuLmUoOTI1NjcxKSxuLmUoMjAzOTE4KSxuLmUoNTI2MzcpLG4uZSg5MzI1NTcpLG4uZSg1NzkyMzgpLG4uZSgxNjAyNSksbi5lKDE4ODM4KSxuLmUoNDU1ODUwKSxuLmUoNzMzNjE1KSxuLmUoMjE3NDgzKSxuLmUoNzc1NDgyKSxuLmUoMjkxOTkyKSxuLmUoODgyMjcwKSxuLmUoMTU5NTEwKSxuLmUoMTU1ODY2KSxuLmUoNDk0MDQ0KSxuLmUoMjM5MjYzKSxuLmUoNTk4OSksbi5lKDk5NTI0Myksbi5lKDExODkxMCldKS50aGVuKG4uYmluZChuLDM3NzgxMSkpKSksZz0obmV3IHIuXzUoQSwoZT0+ZS5ib290c3RyYXApKSx7TWFpbDp7b3B0aW9uczppfSxDYWxlbmRhcjp7b3B0aW9uczpzfSxQZW9wbGU6e29wdGlvbnM6dX0sRmlsZXNIdWI6e29wdGlvbnM6SH0sTWFpbERlZXBMaW5rOntvcHRpb25zOmZ9LEFwcEhvc3Q6e29wdGlvbnM6cH0sQ2FsZW5kYXJEZWVwTGluazp7b3B0aW9uczp2fSxHcm91cHM6e29wdGlvbnM6bX0sRXZlbnRpZnk6e29wdGlvbnM6SX0sTWljcm9zb2Z0UGxhY2VzOntvcHRpb25zOm5ldyByLl81KEEsKGU9PmUuZ2V0TWljcm9zb2Z0UGxhY2VzQm9vdHN0cmFwT3B0aW9ucykpfX0pfSw5NDc1MDM6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0IjtuLmQodCx7SDooKT0+b30pO3ZhciByPW4oNjI0NDUpO2Z1bmN0aW9uIG8oZSx0KXtzd2l0Y2goZSl7Y2FzZSByLlkuQ2FsZW5kYXJEZWVwTGluazpyZXR1cm4gdD97YXBwOiJjYWxlbmRhckRlZXBPcHgiLGV4cGVjdGVkWEFwcE5hbWVIZWFkZXI6IkNhbGVuZGFyRGVlcE9weCJ9OnZvaWQgMDtjYXNlIHIuWS5NYWlsOmNhc2Ugci5ZLkNhbGVuZGFyOmNhc2Ugci5ZLkZpbGVzSHViOnJldHVybnthcHA6Im1haWwiLGV4cGVjdGVkWEFwcE5hbWVIZWFkZXI6Ik1haWwifX19fSw3MTMwOTI6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0IjtuLmQodCx7QWM6KCk9PmQsTjooKT0+bCxaQTooKT0+SH0pO3ZhciByPW4oODY5NDE3KTtmdW5jdGlvbiBvKGUpe3JldHVybigwLHIuUykoIkdldEJwb3NTaGVsbEluZm9OYXZCYXJEYXRhIix7fSxlKX1mdW5jdGlvbiBpKGUpe3JldHVybigwLHIuUykoIkdldEJwb3NTaGVsbEluZm9OYXZCYXJEYXRhRm9yQm9va2luZ3MiLHt9LGUpfXZhciBhPW4oMTk4MzE2KSxzPW4oNjkzNjk2KTtsZXQgYyx1O2Z1bmN0aW9uIGwoZSx0LG4pe2lmKCgwLHMuYTQpKCJlbWVyZ2VuY3lEaXNhYmxlQnBvcyIpKXJldHVybiBQcm9taXNlLnJlc29sdmUobnVsbCk7aWYoIWMpe2M9KCJCb29raW5ncyI9PT10P2k6bykoe2F1dGhOZWVkZWRPblVuQXV0aG9yaXplZDohbn0pLnRoZW4oKHQ9PigoMCxhLnkpKCJnZXRCcG9zTmF2QmFyRGF0YUFzeW5jIix7b3dhXzE6ZSxvd2FfMjoiRmV0Y2ggc3VjY2VlZGVkIn0se3Jpbmc6IkRvZ2Zvb2QifSksdT10KSkpLmNhdGNoKCh0PT4oYz12b2lkIDAsKDAsYS55KSgiZ2V0QnBvc05hdkJhckRhdGFBc3luYyIse293YV8xOmUsb3dhXzI6IkZldGNoIGZhaWx1cmUiLG93YV8zOnQubWVzc2FnZSsiIC0gIit0LnN0YWNrfSx7cmluZzoiRG9nZm9vZCJ9KSx1PW51bGwpKSl9cmV0dXJuIGN9ZnVuY3Rpb24gSCgpe3JldHVybiBjfWZ1bmN0aW9uIGQoKXtyZXR1cm4gdX19LDMxMjg0NzooZSx0LG4pPT57InVzZSBzdHJpY3QiO24uZCh0LHtBYzooKT0+ci5BYyxOOigpPT5yLk4sWkE6KCk9PnIuWkF9KTt2YXIgcj1uKDcxMzA5Mil9LDg4Nzc3OihlLHQsbik9PnsidXNlIHN0cmljdCI7bi5kKHQse2g6KCk9Pm8sczooKT0+cn0pO2xldCByPSExO2Z1bmN0aW9uIG8oKXtyPSEwfX0sOTUxNjM4OihlLHQsbik9PnsidXNlIHN0cmljdCI7bi5kKHQse24zOigpPT5TLGdBOigpPT5mLExfOigpPT5kLFdwOigpPT5ILERNOigpPT51LGNKOigpPT5sLEtIOigpPT5wLEhHOigpPT5yLkh9KTt2YXIgcj1uKDk3MDIzNiksbz1uKDE3NjUyNiksaT1uKDExMzM4MiksYT1uKDQyMjg2Nik7ZnVuY3Rpb24gcyhlLHQsbixyLG8sYSxzLHUpe2lmKHQmJihuPygwLGkuVHopKHQscik6byYmYT8oMCxpLlNiKSh0LG8sYCR7cn1fJHthfWApOmModC5ldmVudE5hbWUscixuKSksZSl7aWYobilyZXR1cm4gdm9pZCBlLmFkZFRvUHJlZGVmaW5lZFdhdGVyZmFsbChyLHMsdm9pZCAwLHUpO2lmKG8mJmEpcmV0dXJuIHZvaWQgZS5hZGRUb0N1c3RvbVdhdGVyZmFsbChvLGAke3J9XyR7YX1gLHMpO2MoZS5ldmVudE5hbWUscixuKX19ZnVuY3Rpb24gYyhlLHQsbil7YS5nNC53YXJuKGBBZGRUaW1pbmdUb1dhdGVyZmFsbEZhaWxlZCBkcDogJHtlfS4gY2hlY2twb2ludDogJHt0fS4gaXNQcmVkZWZpbmVkOiAke259YCl9YXN5bmMgZnVuY3Rpb24gdShlLHQ9bnVsbCxuKXt2YXIgcixhO2lmKCFlfHwhMT09PShudWxsPT10P3ZvaWQgMDp0LmlzRW5hYmxlZCkpcmV0dXJuIG4oe30pO2NvbnN0IGM9bnVsbD09ZT92b2lkIDA6ZS5pc1BlcmZvcm1hbmNlRGF0YXBvaW50LHU9ZSxsPWM/ZTp1LmRhdGFwb2ludDtzKGwsbnVsbCxjLCJEYXRhX1MiLG51bGw9PShyPW51bGw9PXU/dm9pZCAwOnUuaW5kZXhlcyk/dm9pZCAwOnJbMF0sbnVsbD09dT92b2lkIDA6dS5uYW1lLG51bGw9PXQ/dm9pZCAwOnQuZGlzY2FyZElmRGVmaW5lZCk7Y29uc3QgSD0oMCxpLklYKShsKTtILnNldHRpbmdzPXsuLi5ILnNldHRpbmdzLC4uLnR9LEguZGF0YVNvdXJjZT1udWxsO2NvbnN0IGQ9e3BlcmZEYXRhcG9pbnQ6SH0sZj1hd2FpdCBuKGQpO3JldHVybiBudWxsIT09SC5kYXRhU291cmNlfHxILmRpZEV4ZWN1dGVHcWxRdWVyeXx8KEguZGF0YVNvdXJjZT1vLkRhdGFTb3VyY2UuTk9fUVVFUlkpLHMobCxudWxsLGMsIkRhdGFfRSIsbnVsbD09KGE9bnVsbD09dT92b2lkIDA6dS5pbmRleGVzKT92b2lkIDA6YVsxXSxudWxsPT11P3ZvaWQgMDp1Lm5hbWUsbnVsbD09dD92b2lkIDA6dC5kaXNjYXJkSWZEZWZpbmVkKSwoMCxpLkJfKShsLEgpLGZ9YXN5bmMgZnVuY3Rpb24gbChlLHQsbiwuLi5yKXt2YXIgYSxjLHUsbCxILGQsZixTO2NvbnN0IHA9ISghZS53ZWJXb3JrZXJEYXRhcG9pbnQmJiFlLmN1c3RvbVdlYldvcmtlckRhdGFwb2ludCk/ISEobnVsbD09KGE9ZS53ZWJXb3JrZXJEYXRhcG9pbnQpP3ZvaWQgMDphLmlzUGVyZkRhdGFwb2ludE9iamVjdCk6ISEobnVsbD09KGM9ZS5kYXRhcG9pbnQpP3ZvaWQgMDpjLmlzUGVyZm9ybWFuY2VEYXRhcG9pbnQpLEM9ZS5jdXN0b21EYXRhcG9pbnR8fGUuY3VzdG9tV2ViV29ya2VyRGF0YXBvaW50LHY9ZS5kYXRhcG9pbnR8fChudWxsPT0odT1lLmN1c3RvbURhdGFwb2ludCk/dm9pZCAwOnUuZGF0YXBvaW50KSxoPWUud2ViV29ya2VyRGF0YXBvaW50fHwobnVsbD09KGw9ZS5jdXN0b21XZWJXb3JrZXJEYXRhcG9pbnQpP3ZvaWQgMDpsLmRhdGFwb2ludCk7cyh2fHxudWxsLGh8fG51bGwscCwiTmV0d29ya19TIixudWxsPT0oSD1udWxsPT1DP3ZvaWQgMDpDLmluZGV4ZXMpP3ZvaWQgMDpIW28uV2F0ZXJmYWxsTWFwcGluZ3MuTkVUV09SS19SRVFVRVNUX1NUQVJUSU5HXSxudWxsPT1DP3ZvaWQgMDpDLm5hbWUsbnVsbD09dD92b2lkIDA6dC5kaXNjYXJkSWZEZWZpbmVkLChudWxsPT1yP3ZvaWQgMDpyWzBdKT9yWzBdOnZvaWQgMCk7Y29uc3QgbT1hd2FpdCBuLmFwcGx5KG51bGwsciksST1vLkRhdGFTb3VyY2UuTkVUV09SSztyZXR1cm4gZS5kYXRhcG9pbnQ/ZS5kYXRhcG9pbnQuYWRkRGF0YVNvdXJjZShJKTplLmN1c3RvbURhdGFwb2ludD9lLmN1c3RvbURhdGFwb2ludC5kYXRhcG9pbnQuYWRkVG9DdXN0b21XYXRlcmZhbGwobnVsbD09KGQ9ZS5jdXN0b21EYXRhcG9pbnQuaW5kZXhlcyk/dm9pZCAwOmRbby5XYXRlcmZhbGxNYXBwaW5ncy5EQVRBX1NPVVJDRV0sYERhdGFTb3VyY2VfJHtlLmN1c3RvbURhdGFwb2ludC5uYW1lfWAsbnVsbD09dD92b2lkIDA6dC5kaXNjYXJkSWZEZWZpbmVkLEkpOmUud2ViV29ya2VyRGF0YXBvaW50P2Uud2ViV29ya2VyRGF0YXBvaW50LmRhdGFTb3VyY2U9SToobnVsbD09KGY9ZS5jdXN0b21XZWJXb3JrZXJEYXRhcG9pbnQpP3ZvaWQgMDpmLmRhdGFwb2ludCkmJigwLGkuU2IpKGUuY3VzdG9tV2ViV29ya2VyRGF0YXBvaW50LmRhdGFwb2ludCxlLmN1c3RvbVdlYldvcmtlckRhdGFwb2ludC5pbmRleGVzW28uV2F0ZXJmYWxsTWFwcGluZ3MuREFUQV9TT1VSQ0VdLCJEYXRhU291cmNlIixJKSxzKHZ8fG51bGwsaHx8bnVsbCxwLCJOZXR3b3JrX0UiLG51bGw9PShTPW51bGw9PUM/dm9pZCAwOkMuaW5kZXhlcyk/dm9pZCAwOlNbby5XYXRlcmZhbGxNYXBwaW5ncy5ORVRXT1JLX1JFUVVFU1RfRU5ERURdLG51bGw9PUM/dm9pZCAwOkMubmFtZSxudWxsPT10P3ZvaWQgMDp0LmRpc2NhcmRJZkRlZmluZWQsKG51bGw9PXI/dm9pZCAwOnJbMF0pP3JbMF06dm9pZCAwKSxtfWZ1bmN0aW9uIEgoZSx0KXtkKGUpLGYoZSx0KX1mdW5jdGlvbiBkKGUpe2UuYWRkVG9QcmVkZWZpbmVkV2F0ZXJmYWxsKCJSZW5kZXJfUyIsITApfWZ1bmN0aW9uIGYoZSx0LG4peygwLHIuSCkoKHI9PntlLmFkZFRvUHJlZGVmaW5lZFdhdGVyZmFsbCgiUmVuZGVyX0UiLCEwKSx0fHxlLmhhc0VuZGVkfHxlLmVuZCgpLG4mJm4ocil9KSl9Y29uc3QgUz1bIkdRTF9MaW5rX1MiLCJHUUxfTGlua19FIiwiR1FMX0JyaWRnZV9TIiwiR1FMX0JyaWRnZV9FIiwiR1FMX0JyaWRnZV9FcnJvciIsIkRhdGFfUyIsIkRhdGFfRSIsIk5ldHdvcmtfUyIsIk5ldHdvcmtfRSJdO2Z1bmN0aW9uIHAoZSx0LG4scj0hMCl7bi5mb3JFYWNoKChuPT5mdW5jdGlvbihlLHQsbixyKXt2YXIgbztpZih0Lmhhc0VuZGVkKXJldHVybjtjb25zdCBpPWUuZ2V0V2F0ZXJmYWxsQ29sdW1uRGF0YShuKSxhPXBhcnNlSW50KGkmJihudWxsPT0obz1pLnRvU3RyaW5nKCkuc3BsaXQoInwiKSk/dm9pZCAwOm8ucG9wKCkpfHwiIikscz1lLmdldFN0YXJ0VGltZSgpLGM9dC5nZXRTdGFydFRpbWUoKTtpZihhJiZzJiZjKXtjb25zdCBlPXMrYS1jO3QuYWRkVG9QcmVkZWZpbmVkV2F0ZXJmYWxsKG4sITAsZSl9Y29uc3QgdT1lLmdldERhdGFTb3VyY2UoKTtyJiZ1JiZ0LmFkZERhdGFTb3VyY2UodSl9KGUsdCxuLHIpKSl9fSw5NzAyMzY6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0IjtuLmQodCx7SDooKT0+b30pO3ZhciByPW4oMjY5Mzk5KTtmdW5jdGlvbiBvKGUpeygwLHIuSlkpKCh0PT57c2V0VGltZW91dCgoKCk9PntlKHQpfSkpfSkpfX0sNzcyMTk2OihlLHQsbik9PnsidXNlIHN0cmljdCI7bGV0IHI7bi5kKHQse0M6KCk9PmksRDooKT0+YX0pO2NvbnN0IG89W107ZnVuY3Rpb24gaShlLHQsbil7cj9yKGUsdCxuKTpvLnB1c2goe25hbWU6ZSxjdXN0b21EYXRhOnR9KX1mdW5jdGlvbiBhKGUpe3JldHVybiByPWUsb319LDE3NjUyNjooZSx0LG4pPT57InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHIoZSl7cmV0dXJuIkNvbW1hbmRCYXIiPT09ZXx8IlNpbXBsaWZpZWRSaWJib24iPT09ZXx8Ik11bHRpTGluZVJpYmJvbiI9PT1lfHwiQ29tbWFuZEJhclJpYmJvbiI9PT1lfW4uZCh0LHtEYXRhU291cmNlOigpPT5pLERhdGFwb2ludFN0YXR1czooKT0+byxXYXRlcmZhbGxNYXBwaW5nczooKT0+YSxpc0NvbW1hbmRpbmdWaWV3QWN0aW9uU291cmNlOigpPT5yfSk7dmFyIG89KGU9PihlLlN1Y2Nlc3M9IlN1Y2Nlc3MiLGUuU2VydmVyRXJyb3I9IlNlcnZlckVycm9yIixlLlVzZXJFcnJvcj0iVXNlckVycm9yIixlLlNlcnZlckV4cGVjdGVkRXJyb3I9IlNlcnZlckV4cGVjdGVkRXJyb3IiLGUuQ2xpZW50RXJyb3I9IkNsaWVudEVycm9yIixlLlJlcXVlc3ROb3RDb21wbGV0ZT0iUmVxdWVzdE5vdENvbXBsZXRlIixlLlRpbWVvdXQ9IlRpbWVvdXQiLGUuQmFja2dyb3VuZFN1Y2Nlc3M9IkJhY2tncm91bmRTdWNjZXNzIixlKSkob3x8e30pLGk9KGU9PihlLk5FVFdPUks9Ik5FVFdPUksiLGUuTkVUV09SS19HUUw9Ik5FVFdPUktfR1FMIixlLk5FVFdPUktfR0FURVdBWT0iTkVUV09SS19HQVRFV0FZIixlLlNFUlZJQ0VfV09SS0VSPSJTRVJWSUNFX1dPUktFUiIsZS5JTkRFWERCPSJJTkRFWERCIixlLklOX01FTU9SWT0iSU5fTUVNT1JZIixlLk5PX1FVRVJZPSJOT19RVUVSWSIsZSkpKGl8fHt9KSxhPShlPT4oZVtlLk5FVFdPUktfUkVRVUVTVF9TVEFSVElORz0wXT0iTkVUV09SS19SRVFVRVNUX1NUQVJUSU5HIixlW2UuTkVUV09SS19SRVFVRVNUX0VOREVEPTFdPSJORVRXT1JLX1JFUVVFU1RfRU5ERUQiLGVbZS5EQVRBX1NPVVJDRT0yXT0iREFUQV9TT1VSQ0UiLGVbZS5EQVRBX0xPQURJTkc9MF09IkRBVEFfTE9BRElORyIsZVtlLkRBVEFfTE9BREVEPTFdPSJEQVRBX0xPQURFRCIsZVtlLkdRTF9CUklER0VfUVVFUlk9Ml09IkdRTF9CUklER0VfUVVFUlkiLGVbZS5HUUxfQlJJREdFX1JFU1VMVD0zXT0iR1FMX0JSSURHRV9SRVNVTFQiLGVbZS5HUUxfQlJJREdFX0VSUk9SPTRdPSJHUUxfQlJJREdFX0VSUk9SIixlW2UuQ09ERV9MT0FESU5HPTBdPSJDT0RFX0xPQURJTkciLGVbZS5DT0RFX0xPQURFRD0xXT0iQ09ERV9MT0FERUQiLGUpKShhfHx7fSl9LDYwOTUxMzooZSx0LG4pPT57InVzZSBzdHJpY3QiO24uZCh0LHtxOigpPT5vfSk7Y29uc3Qgcj0ib2JqZWN0Ij09dHlwZW9mIHNlbGY7ZnVuY3Rpb24gbygpe3JldHVybiByJiZzZWxmLnBlcmZvcm1hbmNlJiZzZWxmLnBlcmZvcm1hbmNlLm5vdz9NYXRoLmZsb29yKHNlbGYucGVyZm9ybWFuY2Uubm93KCkvMWUzKTpudWxsfX0sMjI5NzYwOihlLHQsbik9PnsidXNlIHN0cmljdCI7bi5kKHQse2laOigpPT5vLGhoOigpPT5zLHEwOigpPT5TLnEsc3E6KCk9PkgsdGY6KCk9PmR9KTt2YXIgcj1uKDQ5Mjk4Mik7ZnVuY3Rpb24gbyhlKXtlLmRhdGF8fChlLmRhdGE9e30pLGUuZGF0YS5BcHA9KDAsci5NcSkoKX12YXIgaT1uKDE5MzkzMyksYT1uKDUzODY1Mik7ZnVuY3Rpb24gcygpe2lmKCgwLHIuViQpKCkpcmV0dXJuImh0dHBzOi8vZXUtb2ZmaWNlLmV2ZW50cy5kYXRhLm1pY3Jvc29mdC5jb20vIitpLndCO2NvbnN0IGU9KDAsaS5hJCkoKTtpZihlKXJldHVybiBlO2NvbnN0IHQ9KDAsYS51RCkoKTtyZXR1cm4iR2NjSGlnaCI9PT10PyJodHRwczovL3RiLmV2ZW50cy5kYXRhLm1pY3Jvc29mdC5jb20vIitpLndCOiJEb0QiPT09dD8iaHR0cHM6Ly9wZi5ldmVudHMuZGF0YS5taWNyb3NvZnQuY29tLyIraS53Qjp2b2lkIDB9dmFyIGM9big0MjI4NjYpO2xldCB1PSEwO2NvbnN0IGw9W107ZnVuY3Rpb24gSCgpe2MuZzQuaW5mbyhgIEFuYWx5dGljcyBJbml0aWFsaXplZC4gUHJvY2Vzc2luZyAke2wubGVuZ3RofSBxdWV1ZWQgZXZlbnRzLmAsImFuYWx5dGljcyIpLHU9ITEsZnVuY3Rpb24oKXtmb3IoO2wubGVuZ3RoPjA7KXtjb25zdHtmdW5jOmUsYXJnczp0fT1sLnBvcCgpO2YoZSx0KX19KCl9ZnVuY3Rpb24gZChlLC4uLnQpe3U/bC5wdXNoKHtmdW5jOmUsYXJnczp0fSk6ZihlLHQpfWZ1bmN0aW9uIGYoZSx0KXtlLmFwcGx5KG51bGwsdCl9dmFyIFM9big2MDk1MTMpfSwxMTMzODI6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0IjtuLmQodCx7aHo6KCk9Pm8sQl86KCk9Pkksb086KCk9Pk4sSng6KCk9PnUsU2I6KCk9PlMsY3M6KCk9PmQsVHo6KCk9PmYsSVg6KCk9Pm0sZFo6KCk9PlIsdXQ6KCk9PlUsayQ6KCk9PnksSXA6KCk9PnAsRU06KCk9PkMsQkU6KCk9PmgsZkM6KCk9PnZ9KTt2YXIgcj1uKDQyMjg2Nik7ZnVuY3Rpb24gbyhlLHQsbil7KG51bGw9PWU/dm9pZCAwOmUuaXNQZXJmRGF0YXBvaW50T2JqZWN0KT8oZS5jdXN0b21EYXRhfHwoZS5jdXN0b21EYXRhPXt9KSxlLmN1c3RvbURhdGFbdF09bik6ZSYmci5nNC53YXJuKGBJbnZhbGlkUGVyZkRhdGFwb2ludE9ialBhc3NlZFRvQWRkQ3VzdG9tRGF0YTogS2V5OiAke3R9LiBWYWx1ZTogJHtufWApfXZhciBpPW4oNDU4ODE3KTtjb25zdCBhPSJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZiYmc2VsZi5wZXJmb3JtYW5jZSYmISFzZWxmLnBlcmZvcm1hbmNlLm1hcmsscz0icG0iO2xldCBjPTA7Y29uc3QgdT0oZSx0KT0+e2lmKGUmJihlPT4hIWEmJigwLGkuSkkpKHMpJiYoISgwLGkuSkkpKHMpfHxlLmV2ZW50TmFtZS50b0xvd2VyQ2FzZSgpLmluZGV4T2YoKDAsaS5tbikocykudG9Mb3dlckNhc2UoKSk+LTEpKShlKSl7aWYodm9pZCAwPT09ZS5tYXJrU2V0SWQmJihlLm1hcmtTZXRJZD1jKyspLHBlcmZvcm1hbmNlLm1hcmsobChlLHQpKSxlLnByZXZNYXJrKXtjb25zdCBuPUgoZSxlLnByZXZNYXJrLHQpO3RyeXtwZXJmb3JtYW5jZS5tZWFzdXJlKG4sbChlLGUucHJldk1hcmspKX1jYXRjaChlKXt9fWUucHJldk1hcms9dH19LGw9KGUsdCk9PmBvd2EtJHtlLmV2ZW50TmFtZX1fJHt0fV8ke2UubWFya1NldElkfWAsSD0oZSx0LG4pPT5gJHtlLmV2ZW50TmFtZX1fJHt0fSB0byAke259YDtmdW5jdGlvbiBkKGUsdCxuKXsobnVsbD09ZT92b2lkIDA6ZS5pc1BlcmZEYXRhcG9pbnRPYmplY3QpJiYoZS53YXRlcmZhbGx8fChlLndhdGVyZmFsbD17fSksbj9TKGUsbix0KTpmKGUsdCkpfWZ1bmN0aW9uIGYoZSx0KXtjb25zdCBuPWgoZSk7ZS53YXRlcmZhbGxbdih0KV09bi50b0ZpeGVkKCksdShlLHQpfWZ1bmN0aW9uIFMoZSx0LG4sbyl7aWYoZSl7Y29uc3Qgcj1oKGUpLGk9QyhuLHZvaWQgMD09PW8/cjpvKSxhPXAodCk7ZS53YXRlcmZhbGxbdihhKV09aSx2b2lkIDA9PT1vJiZ1KGUsbil9ZWxzZSByLmc0Lndhcm4oYE5vICdwZXJmRGF0YXBvaW50T2JqJyB3YXMgcGFzc2VkIHRvICdhZGRUb0N1c3RvbVdhdGVyZmFsbCcgZm9yIGNoZWNrcG9pbnQ6ICR7bn1gKX1mdW5jdGlvbiBwKGUpe3JldHVybmBDdXN0b20ke2V9YH1mdW5jdGlvbiBDKGUsdCl7cmV0dXJuYCR7ZX18JHsibnVtYmVyIj09dHlwZW9mIHQ/TWF0aC5yb3VuZCh0KTp0fWB9ZnVuY3Rpb24gdihlKXtyZXR1cm5gV0ZfJHtlfWB9ZnVuY3Rpb24gaChlKXtyZXR1cm4gZT9EYXRlLm5vdygpLWUuc3RhcnRUaW1lOjB9ZnVuY3Rpb24gbShlKXtjb25zdCB0PWUuZXZlbnROYW1lLG49ZS5nZXRTdGFydFRpbWUoKTt0JiZufHwoMCxyLmhaKShgQ2FuJ3QgY29udmVydCBkYXRhcG9pbnQgbmFtZWQgJHt0fSB0aGF0IGlzIG1pc3NpbmcgYSAiZXZlbnROYW1lIiBvciAic3RhcnRUaW1lIi5gKTtyZXR1cm57ZXZlbnROYW1lOnQsc3RhcnRUaW1lOm4sZGF0YVNvdXJjZTplLmdldERhdGFTb3VyY2UoKSx3YXRlcmZhbGw6QShlLnByb3BlcnRpZXMpLGN1c3RvbURhdGE6e30sc2V0dGluZ3M6e2Rpc2FibGVHUUxUaW1pbmdzOiExfSxpc1BlcmZEYXRhcG9pbnRPYmplY3Q6ITB9fWZ1bmN0aW9uIEkoZSx0LG4pe3ZhciBvO2lmKHQuZGF0YVNvdXJjZSYmZS5hZGREYXRhU291cmNlKHQuZGF0YVNvdXJjZSksdC53YXRlcmZhbGwpZm9yKGxldFtpLGFdb2YgT2JqZWN0LmVudHJpZXModC53YXRlcmZhbGwpKWlmKGEpe2lmKCEobnVsbD09KG89dC5zZXR0aW5ncyk/dm9pZCAwOm8uZGlzY2FyZElmRGVmaW5lZCkmJmUuZ2V0RGF0YShpKSYmKDAsci5oWikoYFRoZSBXYXRlcmZhbGwgY29sdW1uIGFscmVhZHkgZXhpc3QuIENvbHVtbjogJHtpfS4gRFA6ICR7ZS5ldmVudE5hbWV9YCksbil7Y29uc3Qgbj1lLmdldFN0YXJ0VGltZSgpLHI9dC5zdGFydFRpbWU7aWYobiYmcil7Y29uc3RbZSx0XT1hLnNwbGl0KCJ8Iik7YT1gJHtlfXwke3ItbitOdW1iZXIodCl9YH19ZS5wcm9wZXJ0aWVzW2ldPWF9aWYodC5jdXN0b21EYXRhKWZvcihjb25zdCBuIG9mIE9iamVjdC5rZXlzKHQuY3VzdG9tRGF0YSkpZS5hZGRDdXN0b21Qcm9wZXJ0eShuLHQuY3VzdG9tRGF0YVtuXSk7ZS5kaWRFeGVjdXRlR3FsUXVlcnk9ZS5kaWRFeGVjdXRlR3FsUXVlcnl8fHQuZGlkRXhlY3V0ZUdxbFF1ZXJ5fWZ1bmN0aW9uIEEoZSl7Y29uc3QgdD0iV0ZfQ29kZV9TIixuPSJXRl9Db2RlX0UiLHI9IldGX05ldHdvcmtfUyIsbz0iV0ZfTmV0d29ya19FIixpPXtbdF06ZVt0XSxbbl06ZVtuXSxbcl06ZVtyXSxbb106ZVtvXX07Zm9yKGxldCB0PTE7dDw9MTU7dCsrKXtjb25zdCBuPWBXRl9DdXN0b20ke3R9YDtpW25dPWVbbl19cmV0dXJuIGl9dmFyIGc9big0OTI5ODIpO2Z1bmN0aW9uIFIoZSx0KXtjb25zdCBuPXtldmVudE5hbWU6ZSxvcHRpb25zOnQsc3RhcnRUaW1lOkRhdGUubm93KCksZGF0YVNvdXJjZTpudWxsLHdhdGVyZmFsbDp7fSxjdXN0b21EYXRhOnt9LHNldHRpbmdzOnt9LGlzUGVyZkRhdGFwb2ludE9iamVjdDohMH07cmV0dXJuIHUobiwicyIpLG59ZnVuY3Rpb24gTihlLHQpe2UmJihlLm1haW5UaHJlYWRMb2dnaW5nRnVuY3Rpb249dCl9ZnVuY3Rpb24gVShlLHQsbixvLGkpe3ZhciBhOyhudWxsPT1lP3ZvaWQgMDplLmlzUGVyZkRhdGFwb2ludE9iamVjdCk/KGUuaGFzRW5kZWQ9ITAsKG51bGw9PWU/dm9pZCAwOmUuZW5kQXJndW1lbnRzKXx8KGUuZW5kQXJndW1lbnRzPXt9KSwobnVsbD09ZT92b2lkIDA6ZS5lbmRBcmd1bWVudHMuZHVyYXRpb24pfHwodD1EYXRlLm5vdygpLWUuc3RhcnRUaW1lKSxlLmVuZEFyZ3VtZW50cz17Li4uZS5lbmRBcmd1bWVudHMsZHVyYXRpb246dCxvdmVycmlkZVN0YXR1czpuLGVycm9ySW46byxlcnJvclR5cGVJbjppfSx1KGUsImUiKSwoMCxnLlNuKSgpP2Z1bmN0aW9uKGUpe2lmKCJwb3N0TWVzc2FnZSJpbiBzZWxmKXtjb25zdCB0PXtsb2dQZXJmb3JtYW5jZURhdGFwb2ludDplfTtzZWxmLnBvc3RNZXNzYWdlKHQpfWVsc2Ugci5nNC53YXJuKCJDYW4ndCBzZW5kIGxvZ1BlcmZvcm1hbmNlRGF0YXBvaW50IGV2ZW50IGZyb20gdGhpcyBXZWIgV29ya2VyLiBEb2VzIGlzIHRoZSB3ZWIgd29ya2VyIGluc3RhbmNlIHdyYXBwZWQgd2l0aCBgYW5hbHl0aWNzTGlzdGVuZXJgPyIpfShlKTplLm1haW5UaHJlYWRMb2dnaW5nRnVuY3Rpb24/ZS5tYWluVGhyZWFkTG9nZ2luZ0Z1bmN0aW9uKGUpOnIuZzQud2FybihgTm9NYWluVGhyZWFkTG9nZ2luZ0Z1bmN0aW9uUHJvdmlkZWQuIFlvdSBjYW4ndCBlbmQgYSBXZWJXb3JrZXJQZXJmRGF0YXBvaW50IG9uIHRoZSBtYWluIHRocmVhZCB3aXRob3V0IHNwZWNpZml5aW5nIGEgbG9nZ2luZyBmdW5jdGlvbi4gRXZlbnQ6ICR7ZS5ldmVudE5hbWV9YCkpOigwLHIucngpKGBXZWJXb3JrZXJQZXJmRGF0YXBvaW50QWxyZWFkeUVuZGVkIChkcDogJHtudWxsPT1lP3ZvaWQgMDplLmV2ZW50TmFtZX0sIGVuZFdpdGhFcnJvcjogJHtudWxsPT0oYT1udWxsPT1lP3ZvaWQgMDplLmVuZEFyZ3VtZW50cyk/dm9pZCAwOmEuZW5kV2l0aEVycm9yfSlgKX1mdW5jdGlvbiB5KGUsdCxuLHIsbyl7ZS5lbmRBcmd1bWVudHN8fChlLmVuZEFyZ3VtZW50cz17fSksZS5lbmRBcmd1bWVudHMuZW5kV2l0aEVycm9yPSEwLFUoZSxvLHQsbiYmZnVuY3Rpb24oZSl7Y29uc3QgdD17bmFtZTplLm5hbWUsbWVzc2FnZTplLm1lc3NhZ2UsZmlsZW5hbWU6ZS5maWxlbmFtZSxsaW5lbm86ZS5saW5lbm8sY29sbm86ZS5jb2xubyxkaWFnbm9zdGljSW5mbzplLmRpYWdub3N0aWNJbmZvLG5ldHdvcmtFcnJvcjplLm5ldHdvcmtFcnJvcixjb21wb25lbnQ6ZS5jb21wb25lbnQsc2NyaXB0RXZhbDplLnNjcmlwdEV2YWwsaHR0cFN0YXR1czplLmh0dHBTdGF0dXMsZXh0ZXJuYWw6ZS5leHRlcm5hbCxmZXRjaEVycm9yVHlwZTplLmZldGNoRXJyb3JUeXBlLHJldHJpYWJsZTplLnJldHJpYWJsZSxyZXBvcnRlZDplLnJlcG9ydGVkLHJlc3BvbnNlQ29kZTplLnJlc3BvbnNlQ29kZSxjb3JyZWxhdGlvblZlY3RvcjplLmNvcnJlbGF0aW9uVmVjdG9yLGNvcnJlbGF0aW9uSWQ6ZS5jb3JyZWxhdGlvbklkLGhlYWRlcnM6ZS5oZWFkZXJzLGFkZFF1ZXVlOmUuYWRkUXVldWUsZXh0ZW5zaW9uczplLmV4dGVuc2lvbnMsbWFpbGJveDplLm1haWxib3h9O3JldHVybiBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHQpKX0obikscil9fSwxOTgzMTY6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0IjtuLmQodCx7eTooKT0+YX0pO3ZhciByPW4oOTU5MTI3KSxvPW4oOTEzODA0KSxpPW4oODg3NzcpO2Z1bmN0aW9uIGEoZSx0LG4pe3JldHVybigwLG8uUykoKSYmIWkucz9uZXcgUHJvbWlzZSgobz0+e3IuV20uaW1wb3J0QW5kRXhlY3V0ZShlLHQsbiksbygpfSkpOnIuVmkuaW1wb3J0QW5kRXhlY3V0ZShlLHQsbil9fSw5NTkxMjc6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0IjtuLmQodCx7QVU6KCk9PmgsRkg6KCk9PmYsSGY6KCk9PnAsSW86KCk9PmwsTHk6KCk9PmMsUiQ6KCk9PmQsUm06KCk9PnUsU3E6KCk9PmksVmk6KCk9PlMsV206KCk9PkMsWXQ6KCk9PmEsX0Y6KCk9PnMsaTc6KCk9PnYscHM6KCk9Pkh9KTt2YXIgcj1uKDYwNDE5MSk7Y29uc3Qgbz1uZXcgci5uSSgoKCk9PlByb21pc2UuYWxsKFtuLmUoOTI1NjcxKSxuLmUoOTUzNTE1KSxuLmUoMzYxMTAzKSxuLmUoOTIzNjM3KSxuLmUoNDY1MTQ1KSxuLmUoMzc0MzkyKSxuLmUoNzE5NTM1KSxuLmUoNDA3NDcxKSxuLmUoNDk5NjU3KSxuLmUoNDUwODYwKV0pLnRoZW4obi5iaW5kKG4sMTA2Njk0KSkpLHttYXhGYWlsZWRSZXRyaWVzOjEwMH0pLGk9bmV3IHIuXzUobywoZT0+ZS5pbml0aWFsaXplQW5hbHl0aWNzKSksYT1uZXcgci5fNShvLChlPT5lLm9uZURTRmx1c2gpKSxzPW5ldyByLl81KG8sKGU9PmUuYWRkQ2FwYWJpbGl0eSkpLGM9bmV3IHIuXzUobywoZT0+ZS5sb2dEYXRhcG9pbnQpKSx1PW5ldyByLl81KG8sKGU9PmUubG9nUGVyZm9ybWFuY2VEYXRhcG9pbnQpKSxsPW5ldyByLl81KG8sKGU9PmUubG9nV2ViV29ya2VyUGVyZkRhdGFwb2ludE9uTWFpblRocmVhZCkpLEg9bmV3IHIuXzUobywoZT0+ZS5nZXRSZXNvdXJjZVRpbWluZ0ZvclVybCkpLGQ9bmV3IHIuXzUobywoZT0+ZS5sb2dBZGRpbnNDdXN0b21lckNvbnRlbnQpKSxmPW5ldyByLl81KG8sKGU9PmUubG9nQWRkaW5zVGVsZW1ldHJ5RXZlbnQpKSxTPW5ldyByLl81KG8sKGU9PmUubG9nVXNhZ2UpKSxwPW5ldyByLl81KG8sKGU9PmUudHJhY2tOZXR3b3JrUmVzcG9uc2UpKSxDPW5ldyByLl81KG8sKGU9PmUud29ya2VyTG9nVXNhZ2UpKSx2PW5ldyByLl81KG8sKGU9PmUud29ya2VyTG9nRGF0YXBvaW50KSksaD1uZXcgci5fNShvLChlPT5lLmFuYWx5dGljc0xpc3RlbmVyKSk7bmV3IHIuXzUobywoZT0+ZS5yZWdpc3Rlck93c0NhbGxiYWNrcykpfSw1NjI2MTc6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0IjtuLmQodCx7SjooKT0+aSxOOigpPT5hfSk7dmFyIHI9big0OTI5ODIpO2NvbnN0IG89e1tyLk9IXToib3V0bG9va193aW4zMiIsW3IuckhdOiJvdXRsb29rX3dpbjMyIixbci5LeV06Im91dGxvb2tfaW9zIixbci5jeF06Im91dGxvb2tfYW5kcm9pZCIsW3IuTTldOiJvdXRsb29rX2FuZHJvaWQiLFtyLkZBXToib3V0bG9va19tYWMiLFtyLmVJXToidGVhbXNfYW5kcm9pZCIsW3Iuc21dOiJ0ZWFtc19pb3MiLFtyLnZqXToidGVhbXNfZGVza3RvcCIsW3IuVVZdOiJ0ZWFtc19kZXNrdG9wIixbci5pd106InNoYXJlcG9pbnQiLFtyLlpCXToid2luZG93cyIsW3IuZ01dOiJvMzY1c2hlbGwifTtmdW5jdGlvbiBpKCl7Y29uc3QgZT0oMCxyLnIwKSgpO3JldHVybiBvW2VdfWZ1bmN0aW9uIGEoKXtjb25zdCBlPXdpbmRvdy5sb2NhdGlvbj93aW5kb3cubG9jYXRpb24ucGF0aG5hbWU6IiI7cmV0dXJuIGUuaW5kZXhPZigiL29weCIpPj0wfHxlLmluZGV4T2YoIi9ob3N0ZWQiKT49MHx8aSgpPyJ0cnVlIjoiZmFsc2UifX0sNjA0MTkxOihlLHQsbik9PnsidXNlIHN0cmljdCI7bi5kKHQse181OigpPT52LEhkOigpPT5QLEVGOigpPT5mLG5JOigpPT5VLGpQOigpPT5wLCRlOigpPT5iLHE5OigpPT5LLHY2OigpPT5jLF9YOigpPT5DLCRKOigpPT51LF9iOigpPT5OfSk7Y2xhc3Mgcntjb25zdHJ1Y3RvcihlKXt0aGlzLnJlc3VsdD1lfXRoZW4oZSx0KXt0cnl7Y29uc3QgdD1lKHRoaXMucmVzdWx0KTtyZXR1cm4obnVsbD09KG49dCk/dm9pZCAwOm4udGhlbikmJiJmdW5jdGlvbiI9PXR5cGVvZiBuLnRoZW4/dDpQcm9taXNlLnJlc29sdmUodCl9Y2F0Y2goZSl7cmV0dXJuIFByb21pc2UucmVqZWN0KGUpfXZhciBufWNhdGNoKGUpe3JldHVybiB0aGlzfXRvU3RyaW5nKCl7cmV0dXJuIlFQIn19bGV0IG89MDtjb25zdCBpPXt9O2xldCBhPXttYXJrSW1wb3J0QXNMb2FkZWQ6ZT0+e2lbZV09ITB9LGlzSW1wb3J0TG9hZGVkOmU9PmlbZV0sbG9nVXNhZ2U6KCk9Pnt9LGxvZ0Vycm9yOigpPT57fSx0cmFjZTooKT0+e319O2Z1bmN0aW9uIHMoKXtyZXR1cm4gYX1mdW5jdGlvbiBjKGUpe2E9ZX1mdW5jdGlvbiB1KCl7YS5nb3Zlcm49dm9pZCAwfXZhciBsPW4oNTM4NjUyKSxIPW4oMTc2NTI2KTtjb25zdCBkPS9mdW5jdGlvblxzKlwoLipcKVxzKntccypyZXR1cm4gW14uXSooW147XSouKil9LztjbGFzcyBme2NvbnN0cnVjdG9yKGUsdCxuKXt0aGlzLmxhenlNb2R1bGU9ZSx0aGlzLmdldHRlcj10LHRoaXMuc2hvdWxkR292ZXJuPW4sdGhpcy5wZW5kaW5nSW1wb3J0cz0wLHRoaXMuaW1wb3J0PShlLHQpPT57aWYoIXRoaXMuaW1wb3J0UHJvbWlzZSl7Y29uc3Qgbj1zKCk7bGV0IG87dHJ5e2lmKG51bGw9PXQ/dm9pZCAwOnQuZXZlbnROYW1lKXQuYWRkVG9QcmVkZWZpbmVkV2F0ZXJmYWxsKCJDb2RlX1MiLCEwKTtlbHNlIGlmKHQpe2NvbnN0IGU9dDtlLmRhdGFwb2ludC5hZGRUb0N1c3RvbVdhdGVyZmFsbChlLmluZGV4ZXNbSC5XYXRlcmZhbGxNYXBwaW5ncy5DT0RFX0xPQURJTkddLGBDb2RlX1NfJHtlLm5hbWV9YCwhMCl9bz10aGlzLmxhenlNb2R1bGUuaW1wb3J0TW9kdWxlKHRoaXMuc2hvdWxkR292ZXJuPyJMYXp5R292ZXJuSW1wb3J0IjoiTGF6eUltcG9ydCIsZXx8IkxhenlJbXBvcnQiLHRoaXMuZ2V0TmFtZSgpKSx0aGlzLmltcG9ydFByb21pc2U9by50aGVuKChlPT57dmFyIG87aWYodGhpcy5pbXBvcnRWYWx1ZT10aGlzLmdldHRlcihlKSx0aGlzLmltcG9ydFByb21pc2U9KG89dGhpcy5pbXBvcnRWYWx1ZSxuZXcgcihvKSksKDAsbC5zaikoKSYmdGhpcy5sYXp5TW9kdWxlLmFkZFdhdGVyZmFsbENoZWNrcG9pbnQodGhpcy5nZXROYW1lKCkpLG4ubWFya0ltcG9ydEFzTG9hZGVkKHRoaXMuaWQpLG51bGw9PXQ/dm9pZCAwOnQuZXZlbnROYW1lKXQuYWRkVG9QcmVkZWZpbmVkV2F0ZXJmYWxsKCJDb2RlX0UiLCEwKTtlbHNlIGlmKHQpe2NvbnN0IGU9dDtlLmRhdGFwb2ludC5hZGRUb0N1c3RvbVdhdGVyZmFsbChlLmluZGV4ZXNbSC5XYXRlcmZhbGxNYXBwaW5ncy5DT0RFX0xPQURFRF0sYENvZGVfRV8ke2UubmFtZX1gLCEwKX1yZXR1cm4gdGhpcy5wZW5kaW5nSW1wb3J0cz0wLHRoaXMuaW1wb3J0VmFsdWV9KSkuY2F0Y2goKGU9Pnt0aHJvdyB0aGlzLmltcG9ydFByb21pc2U9dm9pZCAwLG4ubG9nVXNhZ2UoIkxhenlJbXBvcnRGYWlsdXJlIix7bWVzc2FnZTplLm1lc3NhZ2UscGVuZGluZ0ltcG9ydHM6dGhpcy5wZW5kaW5nSW1wb3J0c30pLHRoaXMucGVuZGluZ0ltcG9ydHM9MCxlfSkpfWNhdGNoKGUpe3RoaXMuaW1wb3J0UHJvbWlzZT1Qcm9taXNlLnJlamVjdChlKX19cmV0dXJuIHRoaXMucGVuZGluZ0ltcG9ydHMrKyx0aGlzLmltcG9ydFByb21pc2V9LHRoaXMuaWQ9KG8rKykudG9TdHJpbmcoKX1kYW5nZXJvdXNseUltcG9ydFN5bmMoKXtpZighdGhpcy5pc0xvYWRlZCgpKXRocm93IG5ldyBFcnJvcigiSW1wb3J0IGlzIG5vdCBhdmFpbGFibGUgeWV0LiIpO3JldHVybiB0aGlzLmltcG9ydFZhbHVlfXRyeUltcG9ydEZvclJlbmRlcigpe2lmKHMoKS5pc0ltcG9ydExvYWRlZCh0aGlzLmlkKSlyZXR1cm4gdGhpcy5pbXBvcnRWYWx1ZTt0aGlzLmltcG9ydCgpfWlzTG9hZGVkKCl7cmV0dXJuIHMoKS5pc0ltcG9ydExvYWRlZCh0aGlzLmlkKX1nZXROYW1lKCl7Y29uc3QgZT10aGlzLmdldHRlci50b1N0cmluZygpO3RyeXtjb25zdCB0PWUubWF0Y2goZCk7cmV0dXJuIHQmJnQubGVuZ3RoPjE/dFsxXTplfWNhdGNoKHQpe3JldHVybiBlfX19bGV0IFM7ZnVuY3Rpb24gcCgpe2NvbnN0IGU9UztyZXR1cm4gUz1udWxsLGV9ZnVuY3Rpb24gQyhlKXtTPWV9Y2xhc3MgdiBleHRlbmRzIGZ7Y29uc3RydWN0b3IoZSx0LG4pe3N1cGVyKGUsdCk7Y29uc3Qgcj10aGlzO3RoaXMuaW1wb3J0QW5kRXhlY3V0ZT1mdW5jdGlvbiguLi5lKXtjb25zdCB0PShudWxsPT1uP3ZvaWQgMDpuLmNhcHR1cmVCdW5kbGVUaW1lKT9EYXRlLm5vdygpOm51bGw7cmV0dXJuIHIuaW1wb3J0KCJMYXp5QWN0aW9uIixyLnBlcmZEYXRhcG9pbnQpLnRoZW4oKG49PntDKHQpO2NvbnN0IHI9bi5hcHBseShudWxsLGUpO3JldHVybiBDKG51bGwpLHJ9KSl9LHRoaXMuYWRkUGVyZkRhdGFwb2ludD1lPT57ci5wZXJmRGF0YXBvaW50PWV9fX12YXIgaD1uKDQ5Mjk4MiksbT1uKDE4MDM4Nyk7ZnVuY3Rpb24gSShlKXtyZXR1cm4gbi5wPWUsZX1sZXQgQT1bXSxnPSExO2Z1bmN0aW9uIFIoZSx0KXtjb25zdHtnb3Zlcm46bn09cygpLHI9KCk9Pm4mJnQ/bihlKTplKCk7Zz9yKCk6QS5wdXNoKHIpfWZ1bmN0aW9uIE4oKXtnPSEwO2Zvcih2YXIgZT0wO2U8QS5sZW5ndGg7ZSsrKUFbZV0oKTtBPVtdfWNsYXNzIFV7Y29uc3RydWN0b3IoZSx0KXt0aGlzLmltcG9ydENhbGxiYWNrPWUsdGhpcy5vcHRpb25zPXQsdGhpcy5pc0xvYWRlZD0hMSx0aGlzLmF0dGVtcHRzPTAsdGhpcy5mYWlsZWRSZXRyaWVzPTAsdGhpcy5wZW5kaW5nSW1wb3J0cz0wLHRoaXMuaW1wb3J0V2F0ZXJmYWxsRGF0YT17fX1pbXBvcnRNb2R1bGUoZSx0LG4pe2lmKCF0aGlzLnByb21pc2Upe2NvbnN0IHI9dD9gYmVjdWFzZSBvZiAke3R9ICR7bn1gOmBkaXJlY3RseSB3aXRoIHNvdXJjZSAke2V9YDtzKCkudHJhY2UoIkRvd25sb2FkaW5nIExhenlNb2R1bGUgIityKSx0aGlzLnByb21pc2U9bmV3IFByb21pc2UoKCh0LG4pPT57dmFyIHI7KChudWxsPT0ocj10aGlzLm9wdGlvbnMpP3ZvaWQgMDpyLnJ1bldoZW4pfHxSKSgoYXN5bmMoKT0+e3ZhciByO2NvbnN0IG89IShudWxsPT0ocj10aGlzLm9wdGlvbnMpP3ZvaWQgMDpyLm1heEZhaWxlZFJldHJpZXMpfHx0aGlzLmZhaWxlZFJldHJpZXM8dGhpcy5vcHRpb25zLm1heEZhaWxlZFJldHJpZXM7Zm9yKHRoaXMuYXR0ZW1wdHM9MDshdGhpcy5pc0xvYWRlZCYmdGhpcy5hdHRlbXB0czw1JiZvOyl0cnl7YXdhaXQgdGhpcy5sb2FkTW9kdWxlKHQsZSl9Y2F0Y2goZSl7YXdhaXQgdGhpcy5vbkxvYWRGYWlsZWQoZSxuKX19KSwiTGF6eUltcG9ydCIhPWUpfSkpfXJldHVybiB0aGlzLmlzTG9hZGVkfHx0aGlzLnBlbmRpbmdJbXBvcnRzKyssdGhpcy5wcm9taXNlfWdldElzTG9hZGVkKCl7cmV0dXJuIHRoaXMuaXNMb2FkZWR9Z2V0VXJsKGUpe3JldHVybiA1LWU8PTE/KDAsaC5PRSkoKTooMCxoLlJzKSgpfWFzeW5jIGxvYWRNb2R1bGUoZSx0KXt2YXIgbjtjb25zdCByPXNlbGYucGVyZm9ybWFuY2Uubm93KCksbz10aGlzLmdldFVybCh0aGlzLmF0dGVtcHRzKyspO0kobyk7Y29uc3QgaT10aGlzLmltcG9ydENhbGxiYWNrKCk7SSgoMCxoLlJzKSgpKTtjb25zdCBhPWF3YWl0IGksYz1yJiZzZWxmLnBlcmZvcm1hbmNlLm5vdygpLXI7aWYoYyYmdy5wdXNoKHtzdGFydDpyLGR1cmF0aW9uOmMsYXR0ZW1wczp0aGlzLmF0dGVtcHRzfSksbnVsbD09KG49dGhpcy5vcHRpb25zKT92b2lkIDA6bi5pbml0aWFsaXplcil7dGhpcy5vcHRpb25zLmluaXRpYWxpemVyKGEpKCl9ZShhKSwoMCxsLnNqKSgpJiYodGhpcy5hZGRXYXRlcmZhbGxDaGVja3BvaW50KCJtb2R1bGUiKSxzZXRUaW1lb3V0KCgoKT0+e3MoKS5sb2dVc2FnZSgiTGF6eU1vZHVsZUltcG9ydHMiLHtlbnRyeU1vZHVsZUlkOnRoaXMuX19nZXRFbnRyeU1vZHVsZUlkRm9yTG9nZ2luZygpLC4uLnRoaXMuaW1wb3J0V2F0ZXJmYWxsRGF0YX0pLHRoaXMuaW1wb3J0V2F0ZXJmYWxsRGF0YT1udWxsfSksMWU0KSwib2JqZWN0Ij09dHlwZW9mIGEmJiJMYXp5SW1wb3J0IiE9dCYmeS5wdXNoKHQpKSx0aGlzLmlzTG9hZGVkPSEwLHRoaXMucGVuZGluZ0ltcG9ydHM9MCx0aGlzLmF0dGVtcHRzPjEmJnMoKS5sb2dVc2FnZSgiTGF6eUxvYWRTdWNjZXNzQWZ0ZXJSZXRyeSIse2F0dGVtcHRzOnRoaXMuYXR0ZW1wdHMudG9TdHJpbmcoKSx1cmw6b30pfWFzeW5jIG9uTG9hZEZhaWxlZChlLHQpe2lmKHRoaXMuZmFpbGVkUmV0cmllcysrLGZ1bmN0aW9uKGUpe3JldHVybiEhZS5yZXF1ZXN0fHwoMCxoLlNuKSgpJiYoIk5ldHdvcmtFcnJvciI9PT1lLm5hbWV8fDE5PT09ZS5jb2RlKX0oZSkpaWYodGhpcy5hdHRlbXB0cz49NSl7cygpLmxvZ1VzYWdlKCJMYXp5TG9hZEZhaWx1cmUiLHttZXNzYWdlOmUubWVzc2FnZSxwZW5kaW5nSW1wb3J0czp0aGlzLnBlbmRpbmdJbXBvcnRzfSk7bGV0IG49IkZhaWxlZCB0byBsb2FkIGphdmFzY3JpcHQuIjtlLmh0dHBTdGF0dXMmJihuKz0iU3RhdHVzOiIrZS5odHRwU3RhdHVzKTtjb25zdCByPW5ldyBFcnJvcihuKTtyLm5ldHdvcmtFcnJvcj0hMCxyLmRpYWdub3N0aWNJbmZvPWUuZGlhZ25vc3RpY0luZm98fGUubWVzc2FnZSxyLnJlcXVlc3Q9ZS5yZXF1ZXN0LHQociksdGhpcy5wZW5kaW5nSW1wb3J0cz0wLHRoaXMucHJvbWlzZT12b2lkIDB9ZWxzZSB0aGlzLmF0dGVtcHRzPjEmJmF3YWl0KDAsbS5aKSgxZTMqTWF0aC5wb3coMix0aGlzLmF0dGVtcHRzLTIpKTtlbHNlIGUuc2NyaXB0RXZhbD0hMCxzKCkubG9nRXJyb3IoZSksdGhpcy5pc0xvYWRlZD0hMCxlLnJlcG9ydGVkPSEwLHQoZSl9X19nZXRFbnRyeU1vZHVsZUlkRm9yTG9nZ2luZygpe2NvbnN0IGU9dGhpcy5pbXBvcnRDYWxsYmFjay50b1N0cmluZygpO3RyeXtjb25zdCB0PS8uKlwuYmluZFwobnVsbCwoW14pXSspXCkvLG49ZS5tYXRjaCh0KTtyZXR1cm4gbiYmbi5sZW5ndGg+MT9uWzFdOmV9Y2F0Y2godCl7cmV0dXJuIGV9fWFkZFdhdGVyZmFsbENoZWNrcG9pbnQoZSl7dGhpcy5pbXBvcnRXYXRlcmZhbGxEYXRhJiZ2b2lkIDA9PT10aGlzLmltcG9ydFdhdGVyZmFsbERhdGFbZV0mJih0aGlzLmltcG9ydFdhdGVyZmFsbERhdGFbZV09bnVsbD09c2VsZj92b2lkIDA6c2VsZi5wZXJmb3JtYW5jZS5ub3coKSl9fWxldCB5PVtdO2Z1bmN0aW9uIEsoKXtjb25zdCBlPXk7cmV0dXJuIHk9W10sZX1sZXQgdz1bXTtmdW5jdGlvbiBiKGUpe2NvbnN0IHQ9Wy4uLnddO3JldHVybiBlJiYodz13LmZpbHRlcigodD0+dC5zdGFydCt0LmR1cmF0aW9uPj1lKSkpLHR9Y2xhc3MgUCBleHRlbmRzIFV7Y29uc3RydWN0b3IoZSl7c3VwZXIoZSx7cnVuV2hlbjplPT57ZSgpfX0pLHRoaXMuaXNCb290TW9kdWxlPSgpPT4hMH19fSw0MTcyNzU6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0IjtuLmQodCx7SEI6KCk9PmMuSCxTUzooKT0+cyxwRzooKT0+bC5wRyxRbDooKT0+by5RLFNYOigpPT5hLFViOigpPT51fSk7dmFyIHI9bigzMDI2MjQpLG89bigzMzQyNDIpLGk9big0MjI4NjYpO2FzeW5jIGZ1bmN0aW9uIGEoZSx0KXtpZigoMCxvLlEpKCkpdHJ5e3JldHVybiBhd2FpdCByLkhvc3RCcmlkZ2UuZ2V0TmFtZXNwYWNlVmVyc2lvbihlKT49dH1jYXRjaChlKXtpLmc0Lndhcm4oZSl9ZWxzZSBpLnJ4KCJQaWVVc2VkT3V0c2lkZU9mTmF0aXZlIik7cmV0dXJuITF9YXN5bmMgZnVuY3Rpb24gcyhlKXtpZigoMCxvLlEpKCkpdHJ5e3JldHVybiBhd2FpdCByLkhvc3RCcmlkZ2UuZ2V0TmFtZXNwYWNlVmVyc2lvbihlKX1jYXRjaChlKXtpLmc0Lndhcm4oZSl9ZWxzZSBpLnJ4KCJQaWVVc2VkT3V0c2lkZU9mTmF0aXZlIik7cmV0dXJuLTF9dmFyIGM9big3NjE1MTMpO2Z1bmN0aW9uIHUoZSx0LG49NWUzKXtyZXR1cm4gbmV3IFByb21pc2UoKChyLG8pPT57Y29uc3QgaT1zZXRUaW1lb3V0KCgoKT0+e28obmV3IEVycm9yKGBQSUUgY2FsbCAke3R9IHRpbWVkIG91dCBhZnRlciAke259IG1pbGxpc2Vjb25kcy5gKSl9KSxuKTtlLnRoZW4oKGU9PntjbGVhclRpbWVvdXQoaSkscihlKX0pKX0pKX12YXIgbD1uKDI4ODIzNyl9LDI2NjQ5MzooZSx0LG4pPT57InVzZSBzdHJpY3QiO24uZCh0LHtBZDooKT0+VCxDWTooKT0+SixGNjooKT0+RixHMDooKT0+cSxLVzooKT0+QSxMJDooKT0+dSxMUTooKT0+eSxRNzooKT0+ZixRdjooKT0+WixTQjooKT0+byxTVTooKT0+YixUZTooKT0+TixWcTooKT0+ayxXYzooKT0+bCxYajooKT0+aSxZUzooKT0+TSxaOigpPT5hLFpROigpPT52LF86KCk9PlIsZkU6KCk9PkQsZ0s6KCk9PnMsZ1A6KCk9PlYsaGI6KCk9PlAsaHI6KCk9PmcsaTA6KCk9PmosaTg6KCk9PkIsakc6KCk9PkUsbFI6KCk9PncsbWw6KCk9PkwsbnQ6KCk9PngsbnU6KCk9Pmgsb3U6KCk9Pk8scGI6KCk9PkMscG86KCk9PmQsdEk6KCk9PkksdTU6KCk9PkssdW86KCk9PlUsdjA6KCk9Pm0sd086KCk9Plcsd246KCk9PmMseHY6KCk9PnAseXY6KCk9Pkh9KTt2YXIgcj1uKDMwMjYyNCk7dmFyIG89KGU9PihlLlVua25vd249IlVua25vd24iLGUuQ29udGludW91c0RlcGxveW1lbnQ9IkNvbnRpbnVvdXNEZXBsb3ltZW50IixlLkRvZ2Zvb2Q9IkRvZ2Zvb2QiLGUuUHJvZHVjdGlvbj0iUHJvZHVjdGlvbiIsZSkpKG98fHt9KSxpPShlPT4oZS5Vbmtub3duPSJVbmtub3duIixlLldXPSJXVyIsZS5Eb2dmb29kPSJEb2dmb29kIixlLlNJUD0iU0lQIixlLkJsYWNrRm9yZXN0PSJCbGFja0ZvcmVzdCIsZS5ET05NVD0iRE9OTVQiLGUuTVNJVD0iTVNJVCIsZS5HYWxsYXRpbj0iR2FsbGF0aW4iLGUuU0RGVjI9IlNERlYyIixlLlBEVD0iUERUIixlLlRERj0iVERGIixlLklUQVI9IklUQVIiLGUpKShpfHx7fSksYT0oZT0+KGUuVW5rbm93bj0iVW5rbm93biIsZS5BRzA4PSJBRzA4IixlLkFHMDk9IkFHMDkiLGUuQmxhY2tGb3Jlc3Q9IkJsYWNrRm9yZXN0IixlLkRJVEFSPSJESVRBUiIsZS5Eb0Q9IkRvRCIsZS5Eb2dmb29kPSJEb2dmb29kIixlLkdhbGxhdGluPSJHYWxsYXRpbiIsZS5HQ0NNb2RlcmF0ZT0iR0NDTW9kZXJhdGUiLGUuR2NjSGlnaD0iR2NjSGlnaCIsZS5Hb3ZDbG91ZD0iR292Q2xvdWQiLGUuSVRBUj0iSVRBUiIsZS5Qcm9kPSJQcm9kIixlKSkoYXx8e30pLHM9KGU9PihlLkRvZ2Zvb2Q9IkRvZ2Zvb2QiLGUuTWljcm9zb2Z0PSJNaWNyb3NvZnQiLGUuRmlyc3RSZWxlYXNlPSJGaXJzdFJlbGVhc2UiLGUuV1c9IldXIixlLlVua25vd249IlVua25vd24iLGUpKShzfHx7fSksYz0oZT0+KGUuVW5rbm93bj0iVW5rbm93biIsZS5EZXZUb29scz0iRGV2VG9vbHMiLGUuRWRnZVRyYWNpbmdUb29scz0iRWRnZVRyYWNpbmdUb29scyIsZSkpKGN8fHt9KSx1PShlPT4oZS5NaW5pbWl6ZT0iTWluaW1pemUiLGUuTWF4aW1pemU9Ik1heGltaXplIixlLkNsb3NlPSJDbG9zZSIsZSkpKHV8fHt9KSxsPShlPT4oZS5Nb3VzZUVudGVyPSJNb3VzZUVudGVyIixlLk1vdXNlTGVhdmU9Ik1vdXNlTGVhdmUiLGUpKShsfHx7fSksSD0oZT0+KGUuUGVyZlRyYWNpbmdTdGFydD0iUGVyZlRyYWNpbmdTdGFydCIsZS5QZXJmVHJhY2luZ1N0b3A9IlBlcmZUcmFjaW5nU3RvcCIsZS5QZXJmVHJhY2luZ0NhbmNlbD0iUGVyZlRyYWNpbmdDYW5jZWwiLGUuUGVyZlRyYWNpbmdPcGVuRmlsZT0iUGVyZlRyYWNpbmdPcGVuRmlsZSIsZS5HZW5lcmF0ZUhlYXBTbmFwc2hvdD0iR2VuZXJhdGVIZWFwU25hcHNob3QiLGUuR2V0VHJhY2luZ0NhdGVnb3JpZXM9IkdldFRyYWNpbmdDYXRlZ29yaWVzIixlKSkoSHx8e30pLGQ9KGU9PihlLlBlcmZUcmFjaW5nRmluaXNoZWQ9IlBlcmZUcmFjaW5nRmluaXNoZWQiLGUpKShkfHx7fSksZj0oZT0+KGUuQ2FjaGVTdG9yYWdlPSJDYWNoZVN0b3JhZ2UiLGUuRGlza0NhY2hlPSJEaXNrQ2FjaGUiLGUuSW5kZXhlZERCPSJJbmRleGVkREIiLGUuTG9jYWxTdG9yYWdlPSJMb2NhbFN0b3JhZ2UiLGUuQ29va2llcz0iQ29va2llcyIsZSkpKGZ8fHt9KTtjbGFzcyBTe3N0YXRpYyBBcnJheU9mUmVjdERpbWVuc2lvbnNQcm9jZXNzb3IoKXtyZXR1cm4gUy5BcnJheU9mUmVjdERpbWVuc2lvbnNWYWx1ZXx8KFMuQXJyYXlPZlJlY3REaW1lbnNpb25zVmFsdWU9e3Byb2Nlc3M6ZnVuY3Rpb24oZSl7Y29uc3QgdD1TLlJlY3REaW1lbnNpb25zUHJvY2Vzc29yKCk7Zm9yKGxldCBuPTA7bjxlLmxlbmd0aDtuKyspdC5wcm9jZXNzP3QucHJvY2VzcyhlW25dKTp0LmNvbnZlcnQmJihlW25dPXQuY29udmVydChlW25dKSl9fSksUy5BcnJheU9mUmVjdERpbWVuc2lvbnNWYWx1ZX1zdGF0aWMgQXJyYXlPZktleVZhbHVlUGFpclByb2Nlc3Nvcigpe3JldHVybiBTLkFycmF5T2ZLZXlWYWx1ZVBhaXJWYWx1ZXx8KFMuQXJyYXlPZktleVZhbHVlUGFpclZhbHVlPXtwcm9jZXNzOmZ1bmN0aW9uKGUpe2NvbnN0IHQ9Uy5LZXlWYWx1ZVBhaXJQcm9jZXNzb3IoKTtmb3IobGV0IG49MDtuPGUubGVuZ3RoO24rKyl0LnByb2Nlc3M/dC5wcm9jZXNzKGVbbl0pOnQuY29udmVydCYmKGVbbl09dC5jb252ZXJ0KGVbbl0pKX19KSxTLkFycmF5T2ZLZXlWYWx1ZVBhaXJWYWx1ZX1zdGF0aWMgQXJyYXlPZkxvY2FsQ2FjaGVUeXBlUHJvY2Vzc29yKCl7cmV0dXJuIFMuQXJyYXlPZkxvY2FsQ2FjaGVUeXBlVmFsdWV8fChTLkFycmF5T2ZMb2NhbENhY2hlVHlwZVZhbHVlPXtwcm9jZXNzOmZ1bmN0aW9uKGUpe2NvbnN0IHQ9Uy5Mb2NhbENhY2hlVHlwZVByb2Nlc3NvcigpO2ZvcihsZXQgbj0wO248ZS5sZW5ndGg7bisrKXQucHJvY2Vzcz90LnByb2Nlc3MoZVtuXSk6dC5jb252ZXJ0JiYoZVtuXT10LmNvbnZlcnQoZVtuXSkpfX0pLFMuQXJyYXlPZkxvY2FsQ2FjaGVUeXBlVmFsdWV9c3RhdGljIEFycmF5T2ZTdHJpbmdQcm9jZXNzb3IoKXtyZXR1cm57fX1zdGF0aWMgQXJyYXlPZlF1aWNrQWN0aW9uUHJvY2Vzc29yKCl7cmV0dXJuIFMuQXJyYXlPZlF1aWNrQWN0aW9uVmFsdWV8fChTLkFycmF5T2ZRdWlja0FjdGlvblZhbHVlPXtwcm9jZXNzOmZ1bmN0aW9uKGUpe2NvbnN0IHQ9Uy5RdWlja0FjdGlvblByb2Nlc3NvcigpO2ZvcihsZXQgbj0wO248ZS5sZW5ndGg7bisrKXQucHJvY2Vzcz90LnByb2Nlc3MoZVtuXSk6dC5jb252ZXJ0JiYoZVtuXT10LmNvbnZlcnQoZVtuXSkpfX0pLFMuQXJyYXlPZlF1aWNrQWN0aW9uVmFsdWV9c3RhdGljIEFycmF5T2ZRdWlja0FjdGlvblYyUHJvY2Vzc29yKCl7cmV0dXJuIFMuQXJyYXlPZlF1aWNrQWN0aW9uVjJWYWx1ZXx8KFMuQXJyYXlPZlF1aWNrQWN0aW9uVjJWYWx1ZT17cHJvY2VzczpmdW5jdGlvbihlKXtjb25zdCB0PVMuUXVpY2tBY3Rpb25WMlByb2Nlc3NvcigpO2ZvcihsZXQgbj0wO248ZS5sZW5ndGg7bisrKXQucHJvY2Vzcz90LnByb2Nlc3MoZVtuXSk6dC5jb252ZXJ0JiYoZVtuXT10LmNvbnZlcnQoZVtuXSkpfX0pLFMuQXJyYXlPZlF1aWNrQWN0aW9uVjJWYWx1ZX1zdGF0aWMgTmF0aXZlSG9zdFJpbmdFbnVtUHJvY2Vzc29yKCl7cmV0dXJuIFMuTmF0aXZlSG9zdFJpbmdFbnVtVmFsdWV8fChTLk5hdGl2ZUhvc3RSaW5nRW51bVZhbHVlPXtjb252ZXJ0OmZ1bmN0aW9uKGUpe3JldHVybiBlfX0pLFMuTmF0aXZlSG9zdFJpbmdFbnVtVmFsdWV9c3RhdGljIFBoeXNpY2FsUmluZ0VudW1Qcm9jZXNzb3IoKXtyZXR1cm4gUy5QaHlzaWNhbFJpbmdFbnVtVmFsdWV8fChTLlBoeXNpY2FsUmluZ0VudW1WYWx1ZT17Y29udmVydDpmdW5jdGlvbihlKXtyZXR1cm4gZX19KSxTLlBoeXNpY2FsUmluZ0VudW1WYWx1ZX1zdGF0aWMgVmFyaWFudEVudmlyb25tZW50RW51bVByb2Nlc3Nvcigpe3JldHVybiBTLlZhcmlhbnRFbnZpcm9ubWVudEVudW1WYWx1ZXx8KFMuVmFyaWFudEVudmlyb25tZW50RW51bVZhbHVlPXtjb252ZXJ0OmZ1bmN0aW9uKGUpe3JldHVybiBlfX0pLFMuVmFyaWFudEVudmlyb25tZW50RW51bVZhbHVlfXN0YXRpYyBMb2dpY2FsUmluZ0VudW1Qcm9jZXNzb3IoKXtyZXR1cm4gUy5Mb2dpY2FsUmluZ0VudW1WYWx1ZXx8KFMuTG9naWNhbFJpbmdFbnVtVmFsdWU9e2NvbnZlcnQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGV9fSksUy5Mb2dpY2FsUmluZ0VudW1WYWx1ZX1zdGF0aWMgVXNlclR5cGVQcm9jZXNzb3IoKXtyZXR1cm4gUy5Vc2VyVHlwZVZhbHVlfHwoUy5Vc2VyVHlwZVZhbHVlPXtjb252ZXJ0OmZ1bmN0aW9uKGUpe3JldHVybiBlfX0pLFMuVXNlclR5cGVWYWx1ZX1zdGF0aWMgSG90S2V5UHJvY2Vzc29yKCl7cmV0dXJuIFMuSG90S2V5VmFsdWV8fChTLkhvdEtleVZhbHVlPXtjb252ZXJ0OmZ1bmN0aW9uKGUpe3JldHVybiBlfX0pLFMuSG90S2V5VmFsdWV9c3RhdGljIEJ1dHRvblR5cGVQcm9jZXNzb3IoKXtyZXR1cm4gUy5CdXR0b25UeXBlVmFsdWV8fChTLkJ1dHRvblR5cGVWYWx1ZT17Y29udmVydDpmdW5jdGlvbihlKXtyZXR1cm4gZX19KSxTLkJ1dHRvblR5cGVWYWx1ZX1zdGF0aWMgQnV0dG9uQWN0aW9uUHJvY2Vzc29yKCl7cmV0dXJuIFMuQnV0dG9uQWN0aW9uVmFsdWV8fChTLkJ1dHRvbkFjdGlvblZhbHVlPXtjb252ZXJ0OmZ1bmN0aW9uKGUpe3JldHVybiBlfX0pLFMuQnV0dG9uQWN0aW9uVmFsdWV9c3RhdGljIERldlRvb2xzQWN0aW9uUHJvY2Vzc29yKCl7cmV0dXJuIFMuRGV2VG9vbHNBY3Rpb25WYWx1ZXx8KFMuRGV2VG9vbHNBY3Rpb25WYWx1ZT17Y29udmVydDpmdW5jdGlvbihlKXtyZXR1cm4gZX19KSxTLkRldlRvb2xzQWN0aW9uVmFsdWV9c3RhdGljIERldlRvb2xzRXZlbnRQcm9jZXNzb3IoKXtyZXR1cm4gUy5EZXZUb29sc0V2ZW50VmFsdWV8fChTLkRldlRvb2xzRXZlbnRWYWx1ZT17Y29udmVydDpmdW5jdGlvbihlKXtyZXR1cm4gZX19KSxTLkRldlRvb2xzRXZlbnRWYWx1ZX1zdGF0aWMgTG9jYWxDYWNoZVR5cGVQcm9jZXNzb3IoKXtyZXR1cm4gUy5Mb2NhbENhY2hlVHlwZVZhbHVlfHwoUy5Mb2NhbENhY2hlVHlwZVZhbHVlPXtjb252ZXJ0OmZ1bmN0aW9uKGUpe3JldHVybiBlfX0pLFMuTG9jYWxDYWNoZVR5cGVWYWx1ZX1zdGF0aWMgV2luZG93RGltZW5zaW9uc1Byb2Nlc3Nvcigpe3JldHVybnt9fXN0YXRpYyBSZWN0RGltZW5zaW9uc1Byb2Nlc3Nvcigpe3JldHVybnt9fXN0YXRpYyBDYXB0aW9uQnV0dG9uc1Bvc2l0aW9uc1Byb2Nlc3Nvcigpe3JldHVybiBTLkNhcHRpb25CdXR0b25zUG9zaXRpb25zVmFsdWV8fChTLkNhcHRpb25CdXR0b25zUG9zaXRpb25zVmFsdWU9e3Byb2Nlc3M6ZnVuY3Rpb24oZSl7Y29uc3QgdD1TLlJlY3REaW1lbnNpb25zUHJvY2Vzc29yKCk7dC5wcm9jZXNzP3QucHJvY2VzcyhlLm1pbmltaXplKTp0LmNvbnZlcnQmJihlLm1pbmltaXplPXQuY29udmVydChlLm1pbmltaXplKSk7Y29uc3Qgbj1TLlJlY3REaW1lbnNpb25zUHJvY2Vzc29yKCk7bi5wcm9jZXNzP24ucHJvY2VzcyhlLm1heGltaXplKTpuLmNvbnZlcnQmJihlLm1heGltaXplPW4uY29udmVydChlLm1heGltaXplKSk7Y29uc3Qgcj1TLlJlY3REaW1lbnNpb25zUHJvY2Vzc29yKCk7ci5wcm9jZXNzP3IucHJvY2VzcyhlLmNsb3NlKTpyLmNvbnZlcnQmJihlLmNsb3NlPXIuY29udmVydChlLmNsb3NlKSl9fSksUy5DYXB0aW9uQnV0dG9uc1Bvc2l0aW9uc1ZhbHVlfXN0YXRpYyBVcGRhdGVGcmFtZUNvbnRleHRQcm9jZXNzb3IoKXtyZXR1cm4gUy5VcGRhdGVGcmFtZUNvbnRleHRWYWx1ZXx8KFMuVXBkYXRlRnJhbWVDb250ZXh0VmFsdWU9e3Byb2Nlc3M6ZnVuY3Rpb24oZSl7Y29uc3QgdD1TLldpbmRvd0RpbWVuc2lvbnNQcm9jZXNzb3IoKTt0LnByb2Nlc3M/dC5wcm9jZXNzKGUud2luZG93KTp0LmNvbnZlcnQmJihlLndpbmRvdz10LmNvbnZlcnQoZS53aW5kb3cpKTtjb25zdCBuPVMuUmVjdERpbWVuc2lvbnNQcm9jZXNzb3IoKTtuLnByb2Nlc3M/bi5wcm9jZXNzKGUudGl0bGVCYXIpOm4uY29udmVydCYmKGUudGl0bGVCYXI9bi5jb252ZXJ0KGUudGl0bGVCYXIpKTtjb25zdCByPVMuQXJyYXlPZlJlY3REaW1lbnNpb25zUHJvY2Vzc29yKCk7ci5wcm9jZXNzP3IucHJvY2VzcyhlLmV4Y2x1ZGVkKTpyLmNvbnZlcnQmJihlLmV4Y2x1ZGVkPXIuY29udmVydChlLmV4Y2x1ZGVkKSk7Y29uc3Qgbz12b2lkIDA9PT1lLmNhcHRpb25CdXR0b25zP3t9OlMuQ2FwdGlvbkJ1dHRvbnNQb3NpdGlvbnNQcm9jZXNzb3IoKTtvLnByb2Nlc3M/by5wcm9jZXNzKGUuY2FwdGlvbkJ1dHRvbnMpOm8uY29udmVydCYmKGUuY2FwdGlvbkJ1dHRvbnM9by5jb252ZXJ0KGUuY2FwdGlvbkJ1dHRvbnMpKX19KSxTLlVwZGF0ZUZyYW1lQ29udGV4dFZhbHVlfXN0YXRpYyBRdWlja0FjdGlvblByb2Nlc3Nvcigpe3JldHVybnt9fXN0YXRpYyBRdWlja0FjdGlvblYyUHJvY2Vzc29yKCl7cmV0dXJue319c3RhdGljIEtleVZhbHVlUGFpclByb2Nlc3Nvcigpe3JldHVybnt9fXN0YXRpYyBXaW5kb3dTdGF0ZVByb2Nlc3Nvcigpe3JldHVybnt9fXN0YXRpYyBDbG9zZVBhcmFtc1Byb2Nlc3Nvcigpe3JldHVybnt9fXN0YXRpYyBNaW5pbWl6ZVBhcmFtc1Byb2Nlc3Nvcigpe3JldHVybnt9fXN0YXRpYyBNYXhpbWl6ZVBhcmFtc1Byb2Nlc3Nvcigpe3JldHVybnt9fXN0YXRpYyBSZXN0b3JlUGFyYW1zUHJvY2Vzc29yKCl7cmV0dXJue319c3RhdGljIEJvb3RGYWlsZWRQYXJhbXNQcm9jZXNzb3IoKXtyZXR1cm4gUy5Cb290RmFpbGVkUGFyYW1zVmFsdWV8fChTLkJvb3RGYWlsZWRQYXJhbXNWYWx1ZT17cHJvY2VzczpmdW5jdGlvbihlKXtjb25zdCB0PXZvaWQgMD09PWUudGVsZW1ldHJ5P3t9OlMuQXJyYXlPZktleVZhbHVlUGFpclByb2Nlc3NvcigpO3QucHJvY2Vzcz90LnByb2Nlc3MoZS50ZWxlbWV0cnkpOnQuY29udmVydCYmKGUudGVsZW1ldHJ5PXQuY29udmVydChlLnRlbGVtZXRyeSkpfX0pLFMuQm9vdEZhaWxlZFBhcmFtc1ZhbHVlfXN0YXRpYyBVcGRhdGVIb3N0UGFyYW1zUHJvY2Vzc29yKCl7cmV0dXJue319c3RhdGljIENsZWFyV2ViVmlld0NhY2hlUGFyYW1zUHJvY2Vzc29yKCl7cmV0dXJuIFMuQ2xlYXJXZWJWaWV3Q2FjaGVQYXJhbXNWYWx1ZXx8KFMuQ2xlYXJXZWJWaWV3Q2FjaGVQYXJhbXNWYWx1ZT17cHJvY2VzczpmdW5jdGlvbihlKXtjb25zdCB0PVMuQXJyYXlPZkxvY2FsQ2FjaGVUeXBlUHJvY2Vzc29yKCk7dC5wcm9jZXNzP3QucHJvY2VzcyhlLmNhY2hlVHlwZXMpOnQuY29udmVydCYmKGUuY2FjaGVUeXBlcz10LmNvbnZlcnQoZS5jYWNoZVR5cGVzKSl9fSksUy5DbGVhcldlYlZpZXdDYWNoZVBhcmFtc1ZhbHVlfXN0YXRpYyBVcGRhdGVGbGlnaHRzUGFyYW1zUHJvY2Vzc29yKCl7cmV0dXJue319c3RhdGljIFNldFF1aWNrQWN0aW9uc1BhcmFtc1Byb2Nlc3Nvcigpe3JldHVybiBTLlNldFF1aWNrQWN0aW9uc1BhcmFtc1ZhbHVlfHwoUy5TZXRRdWlja0FjdGlvbnNQYXJhbXNWYWx1ZT17cHJvY2VzczpmdW5jdGlvbihlKXtjb25zdCB0PVMuQXJyYXlPZlF1aWNrQWN0aW9uUHJvY2Vzc29yKCk7dC5wcm9jZXNzP3QucHJvY2VzcyhlLnF1aWNrQWN0aW9ucyk6dC5jb252ZXJ0JiYoZS5xdWlja0FjdGlvbnM9dC5jb252ZXJ0KGUucXVpY2tBY3Rpb25zKSl9fSksUy5TZXRRdWlja0FjdGlvbnNQYXJhbXNWYWx1ZX1zdGF0aWMgU2V0UXVpY2tBY3Rpb25zVjJQYXJhbXNQcm9jZXNzb3IoKXtyZXR1cm4gUy5TZXRRdWlja0FjdGlvbnNWMlBhcmFtc1ZhbHVlfHwoUy5TZXRRdWlja0FjdGlvbnNWMlBhcmFtc1ZhbHVlPXtwcm9jZXNzOmZ1bmN0aW9uKGUpe2NvbnN0IHQ9Uy5BcnJheU9mUXVpY2tBY3Rpb25WMlByb2Nlc3NvcigpO3QucHJvY2Vzcz90LnByb2Nlc3MoZS5xdWlja0FjdGlvbnMpOnQuY29udmVydCYmKGUucXVpY2tBY3Rpb25zPXQuY29udmVydChlLnF1aWNrQWN0aW9ucykpfX0pLFMuU2V0UXVpY2tBY3Rpb25zVjJQYXJhbXNWYWx1ZX1zdGF0aWMgV2ViVXBkYXRlQXZhaWxhYmxlUGFyYW1zUHJvY2Vzc29yKCl7cmV0dXJue319c3RhdGljIFVwZGF0ZUZyYW1lUGFyYW1zUHJvY2Vzc29yKCl7cmV0dXJuIFMuVXBkYXRlRnJhbWVQYXJhbXNWYWx1ZXx8KFMuVXBkYXRlRnJhbWVQYXJhbXNWYWx1ZT17cHJvY2VzczpmdW5jdGlvbihlKXtjb25zdCB0PVMuVXBkYXRlRnJhbWVDb250ZXh0UHJvY2Vzc29yKCk7dC5wcm9jZXNzP3QucHJvY2VzcyhlLmNvbnRleHQpOnQuY29udmVydCYmKGUuY29udGV4dD10LmNvbnZlcnQoZS5jb250ZXh0KSl9fSksUy5VcGRhdGVGcmFtZVBhcmFtc1ZhbHVlfXN0YXRpYyBVcGRhdGVNYWluV2luZG93SWNvblBhcmFtc1Byb2Nlc3Nvcigpe3JldHVybnt9fXN0YXRpYyBQb3BvdXRMb2FkZWRQYXJhbXNQcm9jZXNzb3IoKXtyZXR1cm57fX1zdGF0aWMgTWFpbldpbmRvd0NyZWF0ZWRQYXJhbXNQcm9jZXNzb3IoKXtyZXR1cm57fX1zdGF0aWMgSW5pdGlhbFdpbmRvd1N0YXRlUGFyYW1zUHJvY2Vzc29yKCl7cmV0dXJuIFMuSW5pdGlhbFdpbmRvd1N0YXRlUGFyYW1zVmFsdWV8fChTLkluaXRpYWxXaW5kb3dTdGF0ZVBhcmFtc1ZhbHVlPXtwcm9jZXNzOmZ1bmN0aW9uKGUpe2NvbnN0IHQ9Uy5XaW5kb3dTdGF0ZVByb2Nlc3NvcigpO3QucHJvY2Vzcz90LnByb2Nlc3MoZS53aW5kb3dTdGF0ZSk6dC5jb252ZXJ0JiYoZS53aW5kb3dTdGF0ZT10LmNvbnZlcnQoZS53aW5kb3dTdGF0ZSkpfX0pLFMuSW5pdGlhbFdpbmRvd1N0YXRlUGFyYW1zVmFsdWV9c3RhdGljIFVwZGF0ZVdpbmRvd1N0YXRlUGFyYW1zUHJvY2Vzc29yKCl7cmV0dXJuIFMuVXBkYXRlV2luZG93U3RhdGVQYXJhbXNWYWx1ZXx8KFMuVXBkYXRlV2luZG93U3RhdGVQYXJhbXNWYWx1ZT17cHJvY2VzczpmdW5jdGlvbihlKXtjb25zdCB0PVMuV2luZG93U3RhdGVQcm9jZXNzb3IoKTt0LnByb2Nlc3M/dC5wcm9jZXNzKGUud2luZG93U3RhdGUpOnQuY29udmVydCYmKGUud2luZG93U3RhdGU9dC5jb252ZXJ0KGUud2luZG93U3RhdGUpKX19KSxTLlVwZGF0ZVdpbmRvd1N0YXRlUGFyYW1zVmFsdWV9c3RhdGljIEhvdEtleVByZXNzZWRQYXJhbXNQcm9jZXNzb3IoKXtyZXR1cm4gUy5Ib3RLZXlQcmVzc2VkUGFyYW1zVmFsdWV8fChTLkhvdEtleVByZXNzZWRQYXJhbXNWYWx1ZT17cHJvY2VzczpmdW5jdGlvbihlKXtjb25zdCB0PVMuSG90S2V5UHJvY2Vzc29yKCk7dC5wcm9jZXNzP3QucHJvY2VzcyhlLmhvdEtleSk6dC5jb252ZXJ0JiYoZS5ob3RLZXk9dC5jb252ZXJ0KGUuaG90S2V5KSl9fSksUy5Ib3RLZXlQcmVzc2VkUGFyYW1zVmFsdWV9c3RhdGljIE9uUG9zdEJvb3RSdW5PbmNlUGFyYW1zUHJvY2Vzc29yKCl7cmV0dXJuIFMuT25Qb3N0Qm9vdFJ1bk9uY2VQYXJhbXNWYWx1ZXx8KFMuT25Qb3N0Qm9vdFJ1bk9uY2VQYXJhbXNWYWx1ZT17cHJvY2VzczpmdW5jdGlvbihlKXtjb25zdCB0PXZvaWQgMD09PWUubmF0aXZlSG9zdFJpbmc/e306Uy5OYXRpdmVIb3N0UmluZ0VudW1Qcm9jZXNzb3IoKTt0LnByb2Nlc3M/dC5wcm9jZXNzKGUubmF0aXZlSG9zdFJpbmcpOnQuY29udmVydCYmKGUubmF0aXZlSG9zdFJpbmc9dC5jb252ZXJ0KGUubmF0aXZlSG9zdFJpbmcpKX19KSxTLk9uUG9zdEJvb3RSdW5PbmNlUGFyYW1zVmFsdWV9c3RhdGljIE9uV2luZG93V2FpdGluZ1RvQ2xvc2VQYXJhbXNQcm9jZXNzb3IoKXtyZXR1cm57fX1zdGF0aWMgT25XaW5kb3dXYWl0aW5nVG9DbG9zZURvbmVQYXJhbXNQcm9jZXNzb3IoKXtyZXR1cm57fX1zdGF0aWMgUGVyZm9ybURldlRvb2xzQWN0aW9uUGFyYW1zUHJvY2Vzc29yKCl7cmV0dXJuIFMuUGVyZm9ybURldlRvb2xzQWN0aW9uUGFyYW1zVmFsdWV8fChTLlBlcmZvcm1EZXZUb29sc0FjdGlvblBhcmFtc1ZhbHVlPXtwcm9jZXNzOmZ1bmN0aW9uKGUpe2NvbnN0IHQ9Uy5EZXZUb29sc0FjdGlvblByb2Nlc3NvcigpO3QucHJvY2Vzcz90LnByb2Nlc3MoZS5hY3Rpb24pOnQuY29udmVydCYmKGUuYWN0aW9uPXQuY29udmVydChlLmFjdGlvbikpfX0pLFMuUGVyZm9ybURldlRvb2xzQWN0aW9uUGFyYW1zVmFsdWV9c3RhdGljIE9uRGV2dG9vbHNFdmVudFBhcmFtc1Byb2Nlc3Nvcigpe3JldHVybiBTLk9uRGV2dG9vbHNFdmVudFBhcmFtc1ZhbHVlfHwoUy5PbkRldnRvb2xzRXZlbnRQYXJhbXNWYWx1ZT17cHJvY2VzczpmdW5jdGlvbihlKXtjb25zdCB0PVMuRGV2VG9vbHNFdmVudFByb2Nlc3NvcigpO3QucHJvY2Vzcz90LnByb2Nlc3MoZS5ldmVudCk6dC5jb252ZXJ0JiYoZS5ldmVudD10LmNvbnZlcnQoZS5ldmVudCkpfX0pLFMuT25EZXZ0b29sc0V2ZW50UGFyYW1zVmFsdWV9c3RhdGljIE9uQnV0dG9uQWN0aW9uUGFyYW1zUHJvY2Vzc29yKCl7cmV0dXJuIFMuT25CdXR0b25BY3Rpb25QYXJhbXNWYWx1ZXx8KFMuT25CdXR0b25BY3Rpb25QYXJhbXNWYWx1ZT17cHJvY2VzczpmdW5jdGlvbihlKXtjb25zdCB0PVMuQnV0dG9uVHlwZVByb2Nlc3NvcigpO3QucHJvY2Vzcz90LnByb2Nlc3MoZS5idXR0b24pOnQuY29udmVydCYmKGUuYnV0dG9uPXQuY29udmVydChlLmJ1dHRvbikpO2NvbnN0IG49Uy5CdXR0b25BY3Rpb25Qcm9jZXNzb3IoKTtuLnByb2Nlc3M/bi5wcm9jZXNzKGUuYWN0aW9uKTpuLmNvbnZlcnQmJihlLmFjdGlvbj1uLmNvbnZlcnQoZS5hY3Rpb24pKX19KSxTLk9uQnV0dG9uQWN0aW9uUGFyYW1zVmFsdWV9c3RhdGljIFNldEFsbG93ZWREb21haW5zUGFyYW1zUHJvY2Vzc29yKCl7cmV0dXJue319c3RhdGljIE9uRXh0ZXJuYWxXZWJDb250ZW50UGFyYW1zUHJvY2Vzc29yKCl7cmV0dXJue319fWFzeW5jIGZ1bmN0aW9uIHAoZSl7YXdhaXQgci50aHJvd0lmVmVyc2lvbklzTm90U3VwcG9ydGVkKCJTeXN0ZW0iLC40KTtjb25zdCB0PXt3aW5kb3dJZDplfTtyZXR1cm4gci5Ib3N0QnJpZGdlLmludm9rZUhvc3QoIlN5c3RlbS5jbG9zZSIsdCxyLk5vb3BQb3N0UHJvY2Vzc2luZ0ZhY3RvcnkoKSl9YXN5bmMgZnVuY3Rpb24gQyhlKXthd2FpdCByLnRocm93SWZWZXJzaW9uSXNOb3RTdXBwb3J0ZWQoIlN5c3RlbSIsLjQpO2NvbnN0IHQ9e3dpbmRvd0lkOmV9O3JldHVybiByLkhvc3RCcmlkZ2UuaW52b2tlSG9zdCgiU3lzdGVtLm1pbmltaXplIix0LHIuTm9vcFBvc3RQcm9jZXNzaW5nRmFjdG9yeSgpKX1hc3luYyBmdW5jdGlvbiB2KGUpe2F3YWl0IHIudGhyb3dJZlZlcnNpb25Jc05vdFN1cHBvcnRlZCgiU3lzdGVtIiwuOSk7Y29uc3QgdD17d2luZG93SWQ6ZX07cmV0dXJuIHIuSG9zdEJyaWRnZS5pbnZva2VIb3N0KCJTeXN0ZW0ubWF4aW1pemUiLHQsci5Ob29wUG9zdFByb2Nlc3NpbmdGYWN0b3J5KCkpfWFzeW5jIGZ1bmN0aW9uIGgoZSl7YXdhaXQgci50aHJvd0lmVmVyc2lvbklzTm90U3VwcG9ydGVkKCJTeXN0ZW0iLC45KTtjb25zdCB0PXt3aW5kb3dJZDplfTtyZXR1cm4gci5Ib3N0QnJpZGdlLmludm9rZUhvc3QoIlN5c3RlbS5yZXN0b3JlIix0LHIuTm9vcFBvc3RQcm9jZXNzaW5nRmFjdG9yeSgpKX1hc3luYyBmdW5jdGlvbiBtKCl7cmV0dXJuIGF3YWl0IHIudGhyb3dJZlZlcnNpb25Jc05vdFN1cHBvcnRlZCgiU3lzdGVtIiwuMyksci5Ib3N0QnJpZGdlLmludm9rZUhvc3QoIlN5c3RlbS5ib290Q29tcGxldGVkIix7fSxyLk5vb3BQb3N0UHJvY2Vzc2luZ0ZhY3RvcnkoKSl9YXN5bmMgZnVuY3Rpb24gSShlKXthd2FpdCByLnRocm93SWZWZXJzaW9uSXNOb3RTdXBwb3J0ZWQoIlN5c3RlbSIsLjYpO2NvbnN0IHQ9e3RlbGVtZXRyeTplfTtyZXR1cm4gci5Ib3N0QnJpZGdlLmludm9rZUhvc3QoIlN5c3RlbS5ib290RmFpbGVkIix0LHIuTm9vcFBvc3RQcm9jZXNzaW5nRmFjdG9yeSgpKX1hc3luYyBmdW5jdGlvbiBBKGUsdCl7YXdhaXQgci50aHJvd0lmVmVyc2lvbklzTm90U3VwcG9ydGVkKCJTeXN0ZW0iLC4xKTtjb25zdCBuPXtmb3JjZVVwZGF0ZTplLHVwZGF0ZVJlYXNvbjp0fTtyZXR1cm4gci5Ib3N0QnJpZGdlLmludm9rZUhvc3QoIlN5c3RlbS51cGRhdGVIb3N0IixuLHIuTm9vcFBvc3RQcm9jZXNzaW5nRmFjdG9yeSgpKX1hc3luYyBmdW5jdGlvbiBnKGUpe2F3YWl0IHIudGhyb3dJZlZlcnNpb25Jc05vdFN1cHBvcnRlZCgiU3lzdGVtIiwxLjAzKTtjb25zdCB0PXtjYWNoZVR5cGVzOmV9O3JldHVybiByLkhvc3RCcmlkZ2UuaW52b2tlSG9zdCgiU3lzdGVtLmNsZWFyV2ViVmlld0NhY2hlIix0LHIuTm9vcFBvc3RQcm9jZXNzaW5nRmFjdG9yeSgpKX1hc3luYyBmdW5jdGlvbiBSKGUsdCl7YXdhaXQgci50aHJvd0lmVmVyc2lvbklzTm90U3VwcG9ydGVkKCJTeXN0ZW0iLC43KTtjb25zdCBuPXtmbGlnaHRzOmUsYm9vdEZsaWdodHM6dH07cmV0dXJuIHIuSG9zdEJyaWRnZS5pbnZva2VIb3N0KCJTeXN0ZW0udXBkYXRlRmxpZ2h0cyIsbixyLk5vb3BQb3N0UHJvY2Vzc2luZ0ZhY3RvcnkoKSl9YXN5bmMgZnVuY3Rpb24gTihlKXthd2FpdCByLnRocm93SWZWZXJzaW9uSXNOb3RTdXBwb3J0ZWQoIlN5c3RlbSIsMS4wNik7Y29uc3QgdD17cXVpY2tBY3Rpb25zOmV9O3JldHVybiByLkhvc3RCcmlkZ2UuaW52b2tlSG9zdCgiU3lzdGVtLnNldFF1aWNrQWN0aW9ucyIsdCxyLk5vb3BQb3N0UHJvY2Vzc2luZ0ZhY3RvcnkoKSl9YXN5bmMgZnVuY3Rpb24gVShlKXthd2FpdCByLnRocm93SWZWZXJzaW9uSXNOb3RTdXBwb3J0ZWQoIlN5c3RlbSIsMS4wOCk7Y29uc3QgdD17cXVpY2tBY3Rpb25zOmV9O3JldHVybiByLkhvc3RCcmlkZ2UuaW52b2tlSG9zdCgiU3lzdGVtLnNldFF1aWNrQWN0aW9uc1YyIix0LHIuTm9vcFBvc3RQcm9jZXNzaW5nRmFjdG9yeSgpKX1hc3luYyBmdW5jdGlvbiB5KGUpe2F3YWl0IHIudGhyb3dJZlZlcnNpb25Jc05vdFN1cHBvcnRlZCgiU3lzdGVtIiwuOTgpO2NvbnN0IHQ9e3ZlcnNpb246ZX07cmV0dXJuIHIuSG9zdEJyaWRnZS5pbnZva2VIb3N0KCJTeXN0ZW0ud2ViVXBkYXRlQXZhaWxhYmxlIix0LHIuTm9vcFBvc3RQcm9jZXNzaW5nRmFjdG9yeSgpKX1hc3luYyBmdW5jdGlvbiBLKGUsdCl7YXdhaXQgci50aHJvd0lmVmVyc2lvbklzTm90U3VwcG9ydGVkKCJTeXN0ZW0iLC41KTtjb25zdCBuPXtjb250ZXh0OmUsd2luZHdvd0lkOnR9O3JldHVybiByLkhvc3RCcmlkZ2UuaW52b2tlSG9zdCgiU3lzdGVtLnVwZGF0ZUZyYW1lIixuLHIuTm9vcFBvc3RQcm9jZXNzaW5nRmFjdG9yeSgpKX1hc3luYyBmdW5jdGlvbiB3KGUsdCl7YXdhaXQgci50aHJvd0lmVmVyc2lvbklzTm90U3VwcG9ydGVkKCJTeXN0ZW0iLC44KTtjb25zdCBuPXtmdWxsSWNvblJlc291cmNlUGF0aDplLG92ZXJsYXlJY29uUmVzb3VyY2VQYXRoOnR9O3JldHVybiByLkhvc3RCcmlkZ2UuaW52b2tlSG9zdCgiU3lzdGVtLnVwZGF0ZU1haW5XaW5kb3dJY29uIixuLHIuTm9vcFBvc3RQcm9jZXNzaW5nRmFjdG9yeSgpKX1hc3luYyBmdW5jdGlvbiBiKGUpe2F3YWl0IHIudGhyb3dJZlZlcnNpb25Jc05vdFN1cHBvcnRlZCgiU3lzdGVtIiwuNCk7Y29uc3QgdD17d2luZG93SWQ6ZX07cmV0dXJuIHIuSG9zdEJyaWRnZS5pbnZva2VIb3N0KCJTeXN0ZW0ucG9wb3V0TG9hZGVkIix0LHIuTm9vcFBvc3RQcm9jZXNzaW5nRmFjdG9yeSgpKX1hc3luYyBmdW5jdGlvbiBQKGUpe2F3YWl0IHIudGhyb3dJZlZlcnNpb25Jc05vdFN1cHBvcnRlZCgiU3lzdGVtIiwuOCk7Y29uc3QgdD17aG90S2V5OmV9O3JldHVybiByLkhvc3RCcmlkZ2UuaW52b2tlSG9zdCgiU3lzdGVtLmhvdEtleVByZXNzZWQiLHQsci5Ob29wUG9zdFByb2Nlc3NpbmdGYWN0b3J5KCkpfWFzeW5jIGZ1bmN0aW9uIGsoZSl7YXdhaXQgci50aHJvd0lmVmVyc2lvbklzTm90U3VwcG9ydGVkKCJTeXN0ZW0iLC45KTtjb25zdCB0PXt3aW5kb3dJZDplfTtyZXR1cm4gci5Ib3N0QnJpZGdlLmludm9rZUhvc3QoIlN5c3RlbS5vbldpbmRvd1dhaXRpbmdUb0Nsb3NlRG9uZSIsdCxyLk5vb3BQb3N0UHJvY2Vzc2luZ0ZhY3RvcnkoKSl9YXN5bmMgZnVuY3Rpb24gRShlLHQpe2F3YWl0IHIudGhyb3dJZlZlcnNpb25Jc05vdFN1cHBvcnRlZCgiU3lzdGVtIiwuOTYpO2NvbnN0IG49e2FjdGlvbjplLGNvbnRlbnQ6dH07cmV0dXJuIHIuSG9zdEJyaWRnZS5pbnZva2VIb3N0KCJTeXN0ZW0ucGVyZm9ybURldlRvb2xzQWN0aW9uIixuLHIuTm9vcFBvc3RQcm9jZXNzaW5nRmFjdG9yeSgpKX1hc3luYyBmdW5jdGlvbiBPKCl7cmV0dXJuIGF3YWl0IHIudGhyb3dJZlZlcnNpb25Jc05vdFN1cHBvcnRlZCgiU3lzdGVtIiwuOTEpLHIuSG9zdEJyaWRnZS5pbnZva2VIb3N0KCJTeXN0ZW0uY2xvc2VQb3BvdXRzQW5kUmVsb2FkIix7fSxyLk5vb3BQb3N0UHJvY2Vzc2luZ0ZhY3RvcnkoKSl9YXN5bmMgZnVuY3Rpb24gVCgpe3JldHVybiBhd2FpdCByLnRocm93SWZWZXJzaW9uSXNOb3RTdXBwb3J0ZWQoIlN5c3RlbSIsLjk4KSxyLkhvc3RCcmlkZ2UuaW52b2tlSG9zdCgiU3lzdGVtLmNsb3NlUG9wb3V0c0FuZE90aGVyV2luZG93cyIse30sci5Ob29wUG9zdFByb2Nlc3NpbmdGYWN0b3J5KCkpfWFzeW5jIGZ1bmN0aW9uIHgoZSl7YXdhaXQgci50aHJvd0lmVmVyc2lvbklzTm90U3VwcG9ydGVkKCJTeXN0ZW0iLDEuMDIpO2NvbnN0IHQ9e2FsbG93ZWREb21haW5zOmV9O3JldHVybiByLkhvc3RCcmlkZ2UuaW52b2tlSG9zdCgiU3lzdGVtLnNldEFsbG93ZWREb21haW5zIix0LHIuTm9vcFBvc3RQcm9jZXNzaW5nRmFjdG9yeSgpKX1hc3luYyBmdW5jdGlvbiBEKCl7cmV0dXJuIGF3YWl0IHIudGhyb3dJZlZlcnNpb25Jc05vdFN1cHBvcnRlZCgiU3lzdGVtIiwxLjA0KSxyLkhvc3RCcmlkZ2UuaW52b2tlSG9zdCgiU3lzdGVtLm9uU3RlYWR5U3RhdGVSZWFjaGVkIix7fSxyLk5vb3BQb3N0UHJvY2Vzc2luZ0ZhY3RvcnkoKSl9YXN5bmMgZnVuY3Rpb24gTSgpe3JldHVybiBhd2FpdCByLnRocm93SWZWZXJzaW9uSXNOb3RTdXBwb3J0ZWQoIlN5c3RlbSIsMS4wNSksci5Ib3N0QnJpZGdlLmludm9rZUhvc3QoIlN5c3RlbS5zaHV0ZG93bkFwcGxpY2F0aW9uIix7fSxyLk5vb3BQb3N0UHJvY2Vzc2luZ0ZhY3RvcnkoKSl9ZnVuY3Rpb24gQihlKXtyZXR1cm4gci5Ib3N0QnJpZGdlLnJlZ2lzdGVyRm9yRXZlbnQoIlN5c3RlbS5wcm9tcHRVcGRhdGVIb3N0IiwoZnVuY3Rpb24oKXtlKCl9KSl9ZnVuY3Rpb24gRihlKXtyZXR1cm4gci5Ib3N0QnJpZGdlLnJlZ2lzdGVyRm9yRXZlbnQoIlN5c3RlbS5tYWluV2luZG93Q3JlYXRlZCIsKGZ1bmN0aW9uKHQpe2lmKHQpe2NvbnN0IG49Uy5NYWluV2luZG93Q3JlYXRlZFBhcmFtc1Byb2Nlc3NvcigpO24ucHJvY2Vzcz9uLnByb2Nlc3ModCk6bi5jb252ZXJ0JiYodD1uLmNvbnZlcnQodCkpLGUodC5pbnN0YW5jZUlkLHQuaXNSZWZyZXNoKX19KSl9ZnVuY3Rpb24gTChlKXtyZXR1cm4gci5Ib3N0QnJpZGdlLnJlZ2lzdGVyRm9yRXZlbnQoIlN5c3RlbS51cGRhdGVXaW5kb3dTdGF0ZSIsKGZ1bmN0aW9uKHQpe2lmKHQpe2NvbnN0IG49Uy5VcGRhdGVXaW5kb3dTdGF0ZVBhcmFtc1Byb2Nlc3NvcigpO24ucHJvY2Vzcz9uLnByb2Nlc3ModCk6bi5jb252ZXJ0JiYodD1uLmNvbnZlcnQodCkpLGUodC53aW5kb3dTdGF0ZSl9fSkpfWZ1bmN0aW9uIFYoZSl7cmV0dXJuIHIuSG9zdEJyaWRnZS5yZWdpc3RlckZvckV2ZW50KCJTeXN0ZW0ub3Blbk5ld1dpbmRvdyIsKGZ1bmN0aW9uKCl7ZSgpfSkpfWZ1bmN0aW9uIFcoZSl7cmV0dXJuIHIuSG9zdEJyaWRnZS5yZWdpc3RlckZvckV2ZW50KCJTeXN0ZW0ub25Qb3N0Qm9vdFJ1bk9uY2UiLChmdW5jdGlvbih0KXtpZih0KXtjb25zdCBuPVMuT25Qb3N0Qm9vdFJ1bk9uY2VQYXJhbXNQcm9jZXNzb3IoKTtuLnByb2Nlc3M/bi5wcm9jZXNzKHQpOm4uY29udmVydCYmKHQ9bi5jb252ZXJ0KHQpKSxlKHQubmF0aXZlSG9zdFJpbmcpfX0pKX1mdW5jdGlvbiBqKGUpe3JldHVybiByLkhvc3RCcmlkZ2UucmVnaXN0ZXJGb3JFdmVudCgiU3lzdGVtLm9uV2luZG93V2FpdGluZ1RvQ2xvc2UiLChmdW5jdGlvbih0KXtpZih0KXtjb25zdCBuPVMuT25XaW5kb3dXYWl0aW5nVG9DbG9zZVBhcmFtc1Byb2Nlc3NvcigpO24ucHJvY2Vzcz9uLnByb2Nlc3ModCk6bi5jb252ZXJ0JiYodD1uLmNvbnZlcnQodCkpLGUodC53aW5kb3dJZCl9fSkpfWZ1bmN0aW9uIEooZSl7cmV0dXJuIHIuSG9zdEJyaWRnZS5yZWdpc3RlckZvckV2ZW50KCJTeXN0ZW0ub25EZXZ0b29sc0V2ZW50IiwoZnVuY3Rpb24odCl7aWYodCl7Y29uc3Qgbj1TLk9uRGV2dG9vbHNFdmVudFBhcmFtc1Byb2Nlc3NvcigpO24ucHJvY2Vzcz9uLnByb2Nlc3ModCk6bi5jb252ZXJ0JiYodD1uLmNvbnZlcnQodCkpLGUodC5ldmVudCx0LmNvbnRlbnQpfX0pKX1mdW5jdGlvbiBxKGUpe3JldHVybiByLkhvc3RCcmlkZ2UucmVnaXN0ZXJGb3JFdmVudCgiU3lzdGVtLm9uQnV0dG9uQWN0aW9uIiwoZnVuY3Rpb24odCl7aWYodCl7Y29uc3Qgbj1TLk9uQnV0dG9uQWN0aW9uUGFyYW1zUHJvY2Vzc29yKCk7bi5wcm9jZXNzP24ucHJvY2Vzcyh0KTpuLmNvbnZlcnQmJih0PW4uY29udmVydCh0KSksZSh0LndpbmRvd0lkLHQuYnV0dG9uLHQuYWN0aW9uKX19KSl9ZnVuY3Rpb24gWihlKXtyZXR1cm4gci5Ib3N0QnJpZGdlLnJlZ2lzdGVyRm9yRXZlbnQoIlN5c3RlbS5vbkV4dGVybmFsV2ViQ29udGVudCIsKGZ1bmN0aW9uKHQpe2lmKHQpe2NvbnN0IG49Uy5PbkV4dGVybmFsV2ViQ29udGVudFBhcmFtc1Byb2Nlc3NvcigpO24ucHJvY2Vzcz9uLnByb2Nlc3ModCk6bi5jb252ZXJ0JiYodD1uLmNvbnZlcnQodCkpLGUodC5leHRlcm5hbFdlYkNvbnRlbnQpfX0pKX19LDMzNDI0MjooZSx0LG4pPT57InVzZSBzdHJpY3QiO24uZCh0LHtROigpPT5vfSk7dmFyIHI9bigyODgyMzcpO2Z1bmN0aW9uIG8oKXtyZXR1cm4oMCxyLkd6KSgpfX0sNzYxNTEzOihlLHQsbik9PnsidXNlIHN0cmljdCI7bi5kKHQse0g6KCk9PmwsVTooKT0+dX0pO3ZhciByPW4oMzAyNjI0KSxvPW4oMzM0MjQyKSxpPW4oMjY2NDkzKSxhPW4oNDIyODY2KTtjb25zdCBzPXtBcHBsaWNhdGlvblNldHRpbmdzOi4yLEF1dGhlbnRpY2F0aW9uOjIsRGlhZ25vc3RpY3M6LjEsQWNjb3VudHM6LjkxLE5vdGlmaWNhdGlvbjouNCxPdXRsb29rV2ViQ29udGV4dDouOCxQcml2YWN5Oi4wMSxTeXN0ZW06MS4wMn0sYz17fTtmdW5jdGlvbiB1KCl7cmV0dXJuIGN9YXN5bmMgZnVuY3Rpb24gbCgpe2NvbnN0IGU9YXdhaXQgYXN5bmMgZnVuY3Rpb24oZSl7Y29uc3QgdD17YWxsVXBUb0RhdGU6ITB9O2lmKCgwLG8uUSkoKSlmb3IoY29uc3RbbixvXW9mIE9iamVjdC5lbnRyaWVzKGUpKXRyeXtjb25zdCBlPWF3YWl0IHIuSG9zdEJyaWRnZS5nZXROYW1lc3BhY2VWZXJzaW9uKG4pO2lmKGNbbl09ZSxlPG8pcmV0dXJuIHQuYWxsVXBUb0RhdGU9ITEsdC5uYW1lc3BhY2U9bix0LmN1cnJlbnRWZXJzaW9uPWUsdC5taW5pbXVtVmVyc2lvbj1vLHR9Y2F0Y2goZSl7cmV0dXJuIGEuZzQud2FybihlKSx0LmFsbFVwVG9EYXRlPSEwLHR9ZWxzZSBhLnJ4KCJQaWVVc2VkT3V0c2lkZU9mTmF0aXZlIik7cmV0dXJuIHR9KHMpO2lmKCFlLmFsbFVwVG9EYXRlKXtjb25zdHtuYW1lc3BhY2U6dCxjdXJyZW50VmVyc2lvbjpuLG1pbmltdW1WZXJzaW9uOnJ9PWUsbz1gJHt0fSBpcyBjdXJyZW50bHkgb24gdmVyc2lvbiAke259IGJ1dCB0aGUgbWluaW11bSB2ZXJzaW9uIGlzICR7cn1gO2F3YWl0KDAsaS5LVykoITAsbyl9fX0sMjg4MjM3OihlLHQsbik9PnsidXNlIHN0cmljdCI7bi5kKHQse0d6OigpPT5jLHBHOigpPT5zfSk7dmFyIHI9bigzMDI2MjQpO2NsYXNzIG97Y29uc3RydWN0b3IoKXt0aGlzLm1lc3NhZ2VGcm9tSG9zdENhbGxiYWNrPWU9Pnt9O2NvbnN0IGU9dGhpcy5nZXRXZWJ2aWV3KCk7ZT8oZS5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwoZT0+e3RoaXMubWVzc2FnZUZyb21Ib3N0Q2FsbGJhY2soZS5kYXRhKX0pKSx0aGlzLmNhbGxiYWNrQWRkZWQ9ITApOnRoaXMuY2FsbGJhY2tBZGRlZD0hMX1zZW5kTWVzc2FnZVRvSG9zdChlKXtjb25zdCB0PXRoaXMuZ2V0V2VidmlldygpO3QmJnQucG9zdE1lc3NhZ2UoZSl9aW52b2tlSG9zdFN5bmMoZSx0KXtsZXQgbj0iIjt0cnl7bj1lLmhvc3RPYmplY3RzLnN5bmMucGllaG9zdGJyaWRnZS5pbnZva2VTeW5jKEpTT04uc3RyaW5naWZ5KHQpKX1jYXRjaChlKXtyZXR1cm57c3VjY2VzczohMSxyZXNwb25zZTpudWxsLGVycjplfX1yZXR1cm57c3VjY2VzczohMCxyZXNwb25zZTpKU09OLnBhcnNlKG4pLGVycjpudWxsfX1zZW5kTWVzc2FnZVRvSG9zdFN5bmMoZSl7Y29uc3QgdD10aGlzLmdldFdlYnZpZXcoKTtpZih0KXtjb25zdCBuPXRoaXMuaW52b2tlSG9zdFN5bmModCxlKTtpZihuLnN1Y2Nlc3MpcmV0dXJuIHZvaWQgdGhpcy5tZXNzYWdlRnJvbUhvc3RDYWxsYmFjayhuLnJlc3BvbnNlKX1yLkhvc3RCcmlkZ2UudGhyb3dQaWVTeW5jTm90U3VwcG9ydGVkKCl9Z2V0U3RhcnRpbmdTeW5jSWQoKXtjb25zdCBlPXRoaXMuZ2V0V2VidmlldygpO2lmKGUpdHJ5e3JldHVybiBlLmhvc3RPYmplY3RzLnN5bmMucGllaG9zdGJyaWRnZS5nZXRTdGFydGluZ1N5bmNJZCgpfWNhdGNoKGUpe31yZXR1cm4gci5Ib3N0QnJpZGdlLnRocm93UGllU3luY05vdFN1cHBvcnRlZCgpLC0xfWFkZEhvc3RNZXNzYWdlSGFuZGxlcihlKXt0aGlzLm1lc3NhZ2VGcm9tSG9zdENhbGxiYWNrPWV9Z2V0V2Vidmlldygpe2lmKCJvYmplY3QiIT10eXBlb2Ygd2luZG93KXJldHVybiBudWxsO2NvbnN0IGU9d2luZG93LmNocm9tZTtyZXR1cm4gZT9lLndlYnZpZXc6dm9pZCAwfWdldE5vdEluaXRpYWxpemVkUmVhc29uKCl7cmV0dXJuIHRoaXMuZ2V0V2VidmlldygpP3RoaXMuY2FsbGJhY2tBZGRlZD9udWxsOiJOb0NhbGxiYWNrQWRkZWQiOiJOb1dlYlZpZXcifWlzSW5pdGlhbGl6ZWQoKXtyZXR1cm4gbnVsbD09dGhpcy5nZXROb3RJbml0aWFsaXplZFJlYXNvbigpfX1jb25zdCBpPWNsYXNze3N0YXRpYyBnZXROb3RJbml0aWFsaXplZFJlYXNvbigpe2lmKCFpLnRoZUluc3RhbmNlKXJldHVybiJOb1dlYlZpZXcyQnJpZGdlSW5zdGFuY2UiO2NvbnN0IGU9aS50aGVJbnN0YW5jZS5nZXROb3RJbml0aWFsaXplZFJlYXNvbigpO3JldHVybiBlfHwoci5Ib3N0QnJpZGdlLmlzSW5pdGlhbGl6YXRpb25OZWVkZWQoaS50aGVJbnN0YW5jZSk/Ikhvc3RCcmlkZ2VOZWVkc0luaXRpbGl6YXRpb24iOm51bGwpfXN0YXRpYyBpc0luaXRpYWxpemVkKCl7cmV0dXJuIG51bGw9PWkuZ2V0Tm90SW5pdGlhbGl6ZWRSZWFzb24oKX19O2xldCBhPWk7ZnVuY3Rpb24gcygpe2EuaXNJbml0aWFsaXplZCgpfHwoYS50aGVJbnN0YW5jZT1uZXcgbyxyLkhvc3RCcmlkZ2UuaW5pdGlhbGl6ZShhLnRoZUluc3RhbmNlKSk7Y29uc3QgZT1hLmdldE5vdEluaXRpYWxpemVkUmVhc29uKCk7aWYoZSl0aHJvdyBuZXcgRXJyb3IoYFdlYlZpZXcyYnJpZGdlTm90SW5pdGlhbGl6ZWQ6JHtlfWApfWZ1bmN0aW9uIGMoKXtyZXR1cm4gYS5pc0luaXRpYWxpemVkKCl9YS50aGVJbnN0YW5jZT1udWxsfSw3MTgyMjQ6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0IjtuLmQodCx7Uno6KCk9PkUsTXE6KCk9Pm0sR0c6KCk9PmcsJEI6KCk9PkEsVko6KCk9PkksdDk6KCk9PlUseGI6KCk9PkssT0U6KCk9PncsUnM6KCk9PnksaiQ6KCk9PlIsaHk6KCk9Pk4sejY6KCk9PmQsZGI6KCk9Pmh9KTt2YXIgcj1uKDQ1ODgxNyksbz1uKDc0NTM5OSksaT1uKDUzODY1Mik7bGV0IGEscz0ib3dhbWFpbC8iO2Z1bmN0aW9uIGMoKXtpZighYSl7Y29uc3QgZT0iMiI9PSgwLHIubW4pKCJiTyIpO2xldCB0PXUoKStzLG49dSghMCkrcztjb25zdCBpPSgwLG8uWlApKCJiYXNlVXJsIik7UigpJiZpJiYodD1uPWkpLGE9e1BhY2thZ2VCYXNlVXJsOmU/bjp0LEV4dHJhU2V0dGluZ3M6e30sQmFja3VwQmFzZVVybDplP3Q6bixSZXNvdXJjZXNQYXRoOiIiLFNjcmlwdFBhdGg6TigpPyIiOiJzY3JpcHRzLyJ9fXJldHVybiBhfWZ1bmN0aW9uIHUoZSl7Y29uc3QgdD1lPzI6MTtsZXQgbj0hMDtjb25zdCByPSgwLG8uWlApKCJzY3JpcHRWZXIiKTtyJiYtMT09PXIuaW5kZXhPZigiLiIpJiYobj0hMSk7Y29uc3QgYT1uP2ByZXMtJHt0fWA6YHJlcy0ke3R9LXNkZmA7cmV0dXJuIkdhbGxhdGluIj09KDAsaS51RCkoKT9gLy9vdXRsb29rLSR7dH0uY2RuLnBhcnRuZXIub3V0bG9vay5jbi9gOmAvLyR7YX0uY2RuLm9mZmljZS5uZXQvYH12YXIgbD1uKDExNzA0Nyk7Y29uc3QgSD1bXTtmdW5jdGlvbiBkKGUpe0gucHVzaChlKX1sZXQgZixTLHAsQyx2O2Z1bmN0aW9uIGgoZSl7Zj1lLGZ1bmN0aW9uKGUpe2Zvcihjb25zdCB0IG9mIEgpdChlKX0oZSl9ZnVuY3Rpb24gbSgpe3JldHVybiBmfWZ1bmN0aW9uIEkoKXtyZXR1cm4gTygic2NyaXB0VmVyIil9ZnVuY3Rpb24gQSgpe2NvbnN0IGU9TygiY2RuVXJsIik7cmV0dXJuIGIoZSk/ZTp1KCl9ZnVuY3Rpb24gZygpe2NvbnN0IGU9TygiYmFja3VwQ2RuVXJsIik7cmV0dXJuIGIoZSk/ZTp1KCEwKX1mdW5jdGlvbiBSKCl7cmV0dXJuIG51bGwhPXA/cDpwPWIoTygiZGV2Q2RuVXJsIikpfWZ1bmN0aW9uIE4oKXt2YXIgZSx0O3JldHVybiBudWxsIT1DP0M6Qz0hIU8oImRldkNkblVybCIpJiYhKG51bGw9PSh0PW51bGw9PShlPW5ldyBVUkwoRShPKCJkZXZDZG5VcmwiKSkpLnBhdGhuYW1lKT92b2lkIDA6ZS5zcGxpdCgiLyIpLmZpbHRlcigoZT0+ZSkpWzBdKT92b2lkIDA6dC5lbmRzV2l0aCgiLWJyYW5jaCIpKX1mdW5jdGlvbiBVKCl7aWYoUylyZXR1cm4gUztjb25zdCBlPU8oImNkblVybCIpLHQ9TygiY2RuQ29udGFpbmVyIiksbj1mdW5jdGlvbigpe2NvbnN0IGU9TygiZGV2Q2RuVXJsIik7aWYoYihlKSlyZXR1cm4gZX0oKTtyZXR1cm4gbnx8KGIoZSkmJmIodCk/ZSt0K0koKSsiLyI6VChjKCkuUGFja2FnZUJhc2VVcmwpKX1mdW5jdGlvbiB5KCl7cmV0dXJuIEUoVSgpK1AoKSl9ZnVuY3Rpb24gSygpe3JldHVybiBFKGAke1UoKX1yZXNvdXJjZXMvYCl9ZnVuY3Rpb24gdygpe2lmKFMpcmV0dXJuIFM7Y29uc3QgZT1PKCJiYWNrdXBDZG5VcmwiKSx0PU8oImNkbkNvbnRhaW5lciIpO2xldCBuPVQoYygpLkJhY2t1cEJhc2VVcmwpO3JldHVybiBiKGUpJiZiKHQpJiYobj1lK3QrSSgpKyIvIiksRShuKStQKCl9ZnVuY3Rpb24gYihlKXtyZXR1cm4hIWUmJmUuaW5kZXhPZigiLyIpPi0xfWZ1bmN0aW9uIFAoKXtjb25zdCBlPU8oInNjcmlwdFBhdGgiKTtyZXR1cm4gYihlKT9lOmMoKS5TY3JpcHRQYXRofWNvbnN0IGs9bmV3IFJlZ0V4cCgiXmh0dHBzPzoiKTtmdW5jdGlvbiBFKGUpe3ZhciB0O3JldHVybiBrLnRlc3QoZSl8fCh2b2lkIDA9PT12JiYodj0obnVsbD09KHQ9KDAsbC55KSgpLmxvY2F0aW9uKT92b2lkIDA6dC5wcm90b2NvbCl8fCJodHRwczoiKSxlPXYrZSksZX1mdW5jdGlvbiBPKGUpe3JldHVybigwLG8uWlApKGUpfHwiIn1mdW5jdGlvbiBUKGUpe3JldHVybiBlKyhSKCk/IiI6SSgpKyIvIisoKDAsci5KSSkoImRlYnVnSnMiKT8iZGVidWcvIjoiIikpfX0sODkyNTY5OihlLHQsbik9PnsidXNlIHN0cmljdCI7bi5kKHQse2FmOigpPT5ILHlGOigpPT5TLHdROigpPT5kfSk7dmFyIHI9big4OTIyMjgpLG89big3MTgyMjQpLGk9big1MTg4MjApO2NvbnN0IGE9Ingtc3ctdmVyc2lvbiIscz0ieC1zdy1hY3RpdmUtY2FjaGUiLGM9IkJvb3RUeXBlU2NyaXB0VmVyIjtsZXQgdSxsO2FzeW5jIGZ1bmN0aW9uIEgoZSl7aWYoKDAsci5TKSgpKXJldHVybiJQd2EiO3RyeXtjb25zdCB0PWAkeygwLG8ueGIpKCl9YW5hbHl0aWNzLXBpbmcuanNgO3JldHVybiBmdW5jdGlvbihlLHQsbil7aWYodC5oZWFkZXJzLmdldCgiWC1DRE4tUHJvdmlkZXIiKSl7Y29uc3QgZT10LmhlYWRlcnMuZ2V0KCJYLUNETi1Qcm92aWRlciIpO251bGwhPWUmJihmPWUpfWlmKHQuaGVhZGVycy5nZXQocykpcmV0dXJuIGw9dC5oZWFkZXJzLmdldChhKSwiU3dDYWNoZSI7Y29uc3Qgcj10LmhlYWRlcnMuZ2V0KCJEYXRlIik7aWYobnVsbD09cil7Y29uc3QgZT0oMCxpLnJWKShzZWxmLGMpPT1uO3JldHVybigwLGkuTFMpKHNlbGYsYyxuKSxlPyJCcm93c2VyQ2FjaGUiOiJOb0NhY2hlIn1jb25zdCBvPURhdGUucGFyc2Uocik7aWYoaXNOYU4obykpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkRGF0ZSIpO3JldHVybiBvLWU+LTFlMz8iTm9DYWNoZSI6IkJyb3dzZXJDYWNoZSJ9KGUsYXdhaXQgZmV0Y2godCksdCl9Y2F0Y2goZSl7cmV0dXJuIHU9ZSwiVW5rbm93biJ9fWZ1bmN0aW9uIGQoKXtyZXR1cm4gbH1sZXQgZj0ibm9uZSI7ZnVuY3Rpb24gUygpe3JldHVybiBmfX0sNzY3NDU3OihlLHQsbik9PnsidXNlIHN0cmljdCI7bi5kKHQseyRDOigpPT5jLEZLOigpPT5hLGd3OigpPT5zfSk7dmFyIHI9big0NTg4MTcpLG89big4MTc0MTUpO2xldCBpPXtuYXRpdmVWZXJzaW9uOm51bGwsc2Vzc2lvbklkOm51bGx9O2Z1bmN0aW9uIGEoKXtyZXR1cm4gaS5uYXRpdmVWZXJzaW9ufHwoMCxyLm1uKSgibmF0aXZlVmVyc2lvbiIpfWZ1bmN0aW9uIHMoKXtyZXR1cm4gaS5zZXNzaW9uSWR9ZnVuY3Rpb24gYyhlLHQpe2k9e25hdGl2ZVZlcnNpb246ZXx8KDAsci5tbikoIm5hdGl2ZVZlcnNpb24iKSxzZXNzaW9uSWQ6dHx8KDAsby5NKSgpfX19LDIwNDkyMzooZSx0LG4pPT57InVzZSBzdHJpY3QiO24uZCh0LHtIRjooKT0+bCxLeDooKT0+SCxOXzooKT0+cyxQRTooKT0+UyxRMTooKT0+ZixVUDooKT0+YyxfSDooKT0+dSx0VTooKT0+aSx5XzooKT0+ZH0pO3ZhciByPW4oODkyNTY5KTtsZXQgbz17fTtmdW5jdGlvbiBpKGUpe2EoImZlIixlLCJYLUZFU2VydmVyIiksYSgiYmUiLGUsIlgtQkVTZXJ2ZXIiKSxhKCJ3c3ZlciIsZSwiWC1PV0EtVmVyc2lvbiIpLGEoImZvc3QiLGUsIngtb3dhLWZvcmVzdCIsKGU9PjA9PWUudG9Mb3dlckNhc2UoKS5pbmRleE9mKCJwcm9kIik/Ik5BTVBSRDAxIjplLnN1YnN0cigwLGUuaW5kZXhPZigiLiIpKS50b1VwcGVyQ2FzZSgpKSksYSgiZGFnIixlLCJ4LW93YS1kYWciLChlPT5lLnRvVXBwZXJDYXNlKCkpKSwhby50ZSYmZSYmZS5oZWFkZXJzJiYoby50ZT1lLmhlYWRlcnMuZ2V0KCJYLU1TRWRnZS1SZWYiKT8iMSI6IjAiKX1mdW5jdGlvbiBhKGUsdCxuLHIpe3ZhciBpLGE7aWYoIW9bZV0pe2NvbnN0IHM9bnVsbD09KGE9bnVsbD09KGk9bnVsbD09dD92b2lkIDA6dC5oZWFkZXJzKT92b2lkIDA6aS5nZXQpP3ZvaWQgMDphLmNhbGwoaSxuKTtvW2VdPXM/cj9yKHMpOnM6IlVua25vd24ifX1mdW5jdGlvbiBzKCl7cmV0dXJuIG8uYmV9ZnVuY3Rpb24gYygpe3JldHVybiBvLmZlfWZ1bmN0aW9uIHUoKXtyZXR1cm4gby50ZX1mdW5jdGlvbiBsKCl7cmV0dXJuIG8ud3N2ZXJ9ZnVuY3Rpb24gSCgpe3JldHVybiBvLmRhZ31mdW5jdGlvbiBkKCl7cmV0dXJuIG8uZm9zdH1hc3luYyBmdW5jdGlvbiBmKCl7dmFyIGU7bGV0IHQ9by5idDtyZXR1cm4hdCYmKG51bGw9PShlPXNlbGYucGVyZm9ybWFuY2UpP3ZvaWQgMDplLnRpbWluZykmJih0PW8uYnQ9YXdhaXQoMCxyLmFmKShzZWxmLnBlcmZvcm1hbmNlLnRpbWluZy5mZXRjaFN0YXJ0KSksdH1mdW5jdGlvbiBTKCl7cmV0dXJuIG99fSw5NDIxMjk6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0IjtuLmQodCx7SzooKT0+aSxhOigpPT5vfSk7bGV0IHI9e307ZnVuY3Rpb24gbyhlKXtpZihlKXRyeXtyPUpTT04ucGFyc2UoZSl9Y2F0Y2goZSl7fXJldHVybiByfWZ1bmN0aW9uIGkoKXtyZXR1cm4gcn19LDM1NDAyOihlLHQsbik9PnsidXNlIHN0cmljdCI7bi5kKHQse246KCk9PnMseTooKT0+YX0pO3ZhciByPW4oNTE4ODIwKTtjb25zdCBvPSJMb2dpY2FsUmluZyI7bGV0IGk7ZnVuY3Rpb24gYShlKXtpJiZpPT09ZXx8KGk9ZSwoMCxyLkxTKShzZWxmLG8sZSkpfWZ1bmN0aW9uIHMoKXtyZXR1cm4gaXx8KGk9KDAsci5yVikoc2VsZixvKSksaX19LDgxNzQxNTooZSx0LG4pPT57InVzZSBzdHJpY3QiO24uZCh0LHtNOigpPT5zfSk7dmFyIHI9big0NTg4MTcpLG89big3Njc0NTcpO2NvbnN0IGk9L1t4eV0vZztsZXQgYTtmdW5jdGlvbiBzKCl7cmV0dXJuIGF8fChhPSgwLG8uZ3cpKCl8fCgwLHIubW4pKCJzZXNzaW9uSWQiKXx8Inh4eHh4eHh4LXh4eHgtNHh4eC15eHh4LXh4eHh4eHh4eHh4eCIucmVwbGFjZShpLChmdW5jdGlvbihlKXt2YXIgdD0xNipNYXRoLnJhbmRvbSgpfDA7cmV0dXJuKCJ4Ij09PWU/dDozJnR8OCkudG9TdHJpbmcoMTYpfSkpKSxhfX0sNDkyOTgyOihlLHQsbik9PnsidXNlIHN0cmljdCI7bi5kKHQse3JUOigpPT51LnJULE05OigpPT51Lk05LGN4OigpPT51LmN4LGVJOigpPT51LmVJLGttOigpPT51LmttLEt5OigpPT51Lkt5LG5COigpPT51Lm5CLHNtOigpPT51LnNtLEFPOigpPT51LkFPLEZBOigpPT51LkZBLG55OigpPT51Lm55LEJyOigpPT51LkJyLEI1OigpPT51LkI1LGdNOigpPT51LmdNLE9IOigpPT51Lk9ILGY2OigpPT51LmY2LCRiOigpPT51LiRiLGl3OigpPT51Lml3LHZqOigpPT51LnZqLFVWOigpPT51LlVWLFpCOigpPT51LlpCLHJIOigpPT51LnJILFh0OigpPT5CLE1xOigpPT5yLk1xLE5fOigpPT55Lk5fLEdHOigpPT5yLkdHLFExOigpPT55LlExLFA2OigpPT5ELHdpOigpPT5rLCRCOigpPT5yLiRCLGkyOigpPT5jLFZKOigpPT5yLlZKLGVqOigpPT5GLmUsS3g6KCk9PnkuS3gsZjooKT0+aixQRTooKT0+eS5QRSxxVjooKT0+TS5LLHlfOigpPT55LnlfLFVQOigpPT55LlVQLHdYOigpPT5nLHIwOigpPT5OLEZsOigpPT56LkYsc3Y6KCk9PkosRzA6KCk9PkUsbnI6KCk9PksubixGSzooKT0+Ui5GSyxITDooKT0+UyxXMzooKT0+ZixkcTooKT0+VSx0OTooKT0+ci50OSxPRTooKT0+ci5PRSxSczooKT0+ci5ScyxIRjooKT0+eS5IRixNUTooKT0+bC5NLF9IOigpPT55Ll9ILFYkOigpPT5ZLGokOigpPT5yLmokLGh5OigpPT5yLmh5LFNvOigpPT5ULlMsQ1E6KCk9PnYsU246KCk9PkwuUyx3YzooKT0+dyxhNzooKT0+TS5hLHo2OigpPT5yLno2LCQ2OigpPT5PLiQsQjooKT0+QSxLbTooKT0+ei5LLHRZOigpPT5xLGdqOigpPT5aLERoOigpPT5wfSk7dmFyIHI9big3MTgyMjQpLG89big1MTg4MjApLGk9bigxMTcwNDcpO2NvbnN0IGE9Ik93YUNsaWVudElkIjtsZXQgcz1udWxsO2Z1bmN0aW9uIGMoKXt2YXIgZTtpZighcyl7Y29uc3QgdD0obnVsbD09KGU9KDAsaS55KSgpKT92b2lkIDA6ZS5jb29raWUpJiYoMCxpLnkpKCkuY29va2llLnNwbGl0KCJDbGllbnRJZD0iKVsxXSxuPXQmJnQuc3BsaXQoIjsiKVswXTtuPyhzPW4sInVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJigwLG8uTFMpKHdpbmRvdyxhLG4pKTpzPSgwLG8uclYpKHNlbGYsYSl9cmV0dXJuIHN9dmFyIHU9big1NjQ0OTgpLGw9big4MTc0MTUpO2xldCBILGQ9Iihub25lKSI7ZnVuY3Rpb24gZigpe3JldHVybiBIfWZ1bmN0aW9uIFMoKXtpZighZCl0aHJvdyBuZXcgRXJyb3IoIk9weCBoYXMgbm90IHJlc3BvbmRlZCB3aXRoIHRoZSBjb25maWcgeWV0Iik7cmV0dXJuIGR9ZnVuY3Rpb24gcChlKXtkPWV9dmFyIEM9big0NTg4MTcpO2Z1bmN0aW9uIHYoKXt2YXIgZSx0O3JldHVybiAwPT0obnVsbD09KHQ9bnVsbD09KGU9KDAsaS55KSgpKT92b2lkIDA6ZS5sb2NhdGlvbik/dm9pZCAwOnQucGF0aG5hbWUuaW5kZXhPZigiL2hvc3RlZCIpKX1jb25zdCBoPVsidGVhbXMiLCJ0ZWFtc21vZGVybiIsIm91dGxvb2siLCJvdXRsb29rd2luMzIiLCJvZmZpY2UiXSxtPVsiZGVza3RvcCIsIndlYiJdO2xldCBJO2Z1bmN0aW9uIEEoZSx0KXtjb25zdCBuPVt1LmttLHUuVVYsdS5ySCx1LkJyLHUuJGJdO2xldCByOygwLEMuSkkpKCJob3N0QXBwIik/cj0oMCxDLm1uKSgiaG9zdEFwcCIpLnRvTG93ZXJDYXNlKCk6KDAsQy5KSSkoInRlc3RIb3N0QXBwIikmJihyPSgwLEMubW4pKCJ0ZXN0SG9zdEFwcCIpLnRvTG93ZXJDYXNlKCkpLHImJm4uaW5jbHVkZXMocikmJihJPXIpO2NvbnN0IG89digpO2lmKCFJJiZvKXtjb25zdCBuPShudWxsPT1lP3ZvaWQgMDplLnRvTG93ZXJDYXNlKCkpfHwiIixyPShudWxsPT10P3ZvaWQgMDp0LnRvTG93ZXJDYXNlKCkpfHwiIjtlJiZoLmluY2x1ZGVzKG4pJiZ0JiZtLmluY2x1ZGVzKHIpPyJ0ZWFtcyI9PT1ufHwidGVhbXNtb2Rlcm4iPT09bj9JPXUuVVY6Im91dGxvb2t3aW4zMiI9PT1uP0k9dS5ySDoib3V0bG9vayI9PT1uPyJkZXNrdG9wIj09PXI/ST11LkJyOiJ3ZWIiPT09ciYmKEk9dS4kYik6ST11LmttOkk9dS5rbX19ZnVuY3Rpb24gZygpe3JldHVybiBJfXZhciBSPW4oNzY3NDU3KTtmdW5jdGlvbiBOKCl7cmV0dXJuKDAsUi5GSykoKT91LkI1OnYoKT9nKCk6UygpfWZ1bmN0aW9uIFUoKXtyZXR1cm4iL293YSJ9dmFyIHk9bigyMDQ5MjMpLEs9bigzNTQwMik7ZnVuY3Rpb24gdygpe3JldHVybiJleGNoYW5nZWxhYnMubGl2ZS1pbnQuY29tIj09PSgwLGkueSkoKS5sb2NhdGlvbi5ob3N0fWxldCBiLFA7ZnVuY3Rpb24gayhlKXt2YXIgdCxuO2NvbnN0IHI9KDAsaS55KSgpLG89ci5kb2N1bWVudDtpZighYnx8ZSl7Y29uc3QgZT1udWxsPT0odD1udWxsPT1vP3ZvaWQgMDpvLmRvY3VtZW50RWxlbWVudCk/dm9pZCAwOnQuY2xpZW50V2lkdGg7Yj1yLmlubmVyV2lkdGgmJmU/TWF0aC5taW4oci5pbm5lcldpZHRoLGUpOnIuaW5uZXJXaWR0aHx8ZXx8KG51bGw9PShuPW51bGw9PW8/dm9pZCAwOm8uYm9keSk/dm9pZCAwOm4uY2xpZW50V2lkdGgpfXJldHVybiBifHwwfWZ1bmN0aW9uIEUoKXtyZXR1cm4gUHx8IkRlc2t0b3AifXZhciBPPW4oMzc4MDkxKSxUPW4oODkyMjI4KTtsZXQgeDtmdW5jdGlvbiBEKGUpe3ZhciB0LG4scj0oMCxpLnkpKCksbz1yLmRvY3VtZW50O2lmKCF4fHxlKXtjb25zdCBlPW51bGw9PSh0PW51bGw9PW8/dm9pZCAwOm8uZG9jdW1lbnRFbGVtZW50KT92b2lkIDA6dC5jbGllbnRIZWlnaHQ7eD1yLmlubmVySGVpZ2h0JiZlP01hdGgubWluKHIuaW5uZXJIZWlnaHQsZSk6ci5pbm5lckhlaWdodHx8ZXx8KG51bGw9PShuPW51bGw9PW8/dm9pZCAwOm8uYm9keSk/dm9pZCAwOm4uY2xpZW50SGVpZ2h0KX1yZXR1cm4geHx8MH12YXIgTT1uKDk0MjEyOSk7ZnVuY3Rpb24gQihlKXtjb25zdCB0PSgwLHIuVkopKCk7cmV0dXJuISEobnVsbD09ZT92b2lkIDA6ZS5zb21lKChlPT5uZXcgUmVnRXhwKGBeJHtlfSRgKS50ZXN0KHQpKSkpfXZhciBGPW4oMzg5NzQzKSxMPW4oOTEzODA0KTtsZXQgVixXO2Z1bmN0aW9uIGooKXtyZXR1cm4gVn1mdW5jdGlvbiBKKCl7cmV0dXJuISFWfWZ1bmN0aW9uIHEoZSl7Vj1lfWZ1bmN0aW9uIFooZSl7Vz1lfXZhciB6PW4oNjUzMzYwKTtjb25zdCBHPVsiQ0hFIiwiRVVSIiwiREVVIiwiR0JSIiwiRlJBIiwiWkFGIiwiQVJFIiwiU1dFIiwiTk9SIiwiUUFUIiwiSVNSIiwiUE9MIiwiRVNQIiwiSVRBIiwiUk9VIiwiQVVUIl07ZnVuY3Rpb24gWSgpe2NvbnN0IGU9KDAseS55XykoKXx8IiIsdD0obnVsbD09ZT92b2lkIDA6ZS5sZW5ndGgpPjM/ZS5zdWJzdHJpbmcoMCwzKTplO3JldHVybiBHLmluZGV4T2YodC50b1VwcGVyQ2FzZSgpKT49MH19LDY1MzM2MDooZSx0LG4pPT57InVzZSBzdHJpY3QiO2xldCByO2Z1bmN0aW9uIG8oKXtyZXR1cm4hIXJ9ZnVuY3Rpb24gaShlKXtyPWV9bi5kKHQse0Y6KCk9Pm8sSzooKT0+aX0pfSw0NzE3MTA6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0IjtuLmQodCx7TzooKT0+b30pO2NvbnN0IHI9L1wvW2EtejAtOS5fJSstXStAW2EtejAtOS4tXStcLlthLXpdezIsfVwvLztmdW5jdGlvbiBvKGUpe3ZhciB0O3JldHVybiEhKG51bGw9PSh0PW51bGw9PWU/dm9pZCAwOmUubG9jYXRpb24pP3ZvaWQgMDp0LmhyZWYpJiZyLnRlc3QoZS5sb2NhdGlvbi5ocmVmLnRvTG93ZXJDYXNlKCkpfX0sODkyMjI4OihlLHQsbik9PnsidXNlIHN0cmljdCI7bi5kKHQse1M6KCk9Pm99KTt2YXIgcj1uKDExNzA0Nyk7ZnVuY3Rpb24gbygpe3JldHVybigwLHIueSkoKS5pc1B3YX19LDkxMzgwNDooZSx0LG4pPT57InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHIoKXtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIFdvcmtlckdsb2JhbFNjb3BlJiZzZWxmIGluc3RhbmNlb2YgV29ya2VyR2xvYmFsU2NvcGV9bi5kKHQse1M6KCk9PnJ9KX0sMzc4MDkxOihlLHQsbik9PnsidXNlIHN0cmljdCI7bi5kKHQseyQ6KCk9PmMsRDooKT0+bH0pO3ZhciByPW4oODE3NDE1KTtjb25zdCBvPTIwNDgsaT1uZXcgUmVnRXhwKC8oW2EtekEtWjAtOStfXC4tXSspKEB8JTQwKShbXGRhLXpBLVpcLi1dKylcLihbYS16QS1aXC5dezIsNn0pLyksYT1uZXcgUmVnRXhwKC8oKHVzZXJcLylbYS16QS1aXSpcLykvZykscz1uZXcgUmVnRXhwKC8oKFw/YnJhbmNoPSlbYS16QS1aXSpcLSkvZyk7ZnVuY3Rpb24gYyhlKXtpZihlKXtsZXQgdD0tMSxuPS0xO3RyeXt0PWUubGVuZ3RoLHQ+byYmKGU9ZS5zdWJzdHJpbmcoMCxvKSksbj1lLmxlbmd0aCxlPWUuaW5kZXhPZigiPC9kaXY+Iik+LTF8fGUuaW5kZXhPZigiPC9zcGFuPiIpPi0xPyJET00gcHJlc2VudCI6ZnVuY3Rpb24oZSx0LG4pe3RyeXtlPWUuc3BsaXQoKDAsci5NKSgpKS5qb2luKCJSZXBsYWNlZFNlc3Npb25JZCIpfWNhdGNoKHIpe2U9dSgiU2Vzc2lvbklkIixyLHQsbil9cmV0dXJuIGV9KGU9ZnVuY3Rpb24oZSx0LG4pe3RyeXtsZXQgdD1udWxsO2Zvcig7bnVsbCE9PSh0PWkuZXhlYyhlKSk7KWU9ZS5yZXBsYWNlKHRbMF0sIkVtYWlsUGlpIil9Y2F0Y2gocil7ZT11KCJFbWFpbCIscix0LG4pfXJldHVybiBlfShlLHQsbiksdCxuKX1jYXRjaChyKXtlPXUoIlVua25vd24iLHIsdCxuKX19cmV0dXJuIG51bGwhPWU/ZTp2b2lkIDB9ZnVuY3Rpb24gdShlLHQsbixyKXtyZXR1cm5gRXJyb3JTY3J1YmluZ1BpaV8ke2V9LiAke3IhPT1vJiZgT3JpZ2luYWwgVmFsdWUgTGVuZ3RoOiAke259LiBTdWJzdHJpbmcgVmFsdWUgTGVuZ3RoOiAke3J9LmB9IE9yaWdpbmFsIEVycm9yOiAke251bGw9PXQ/dm9pZCAwOnQubWVzc2FnZX0uIENhbGxzdGFjazogJHtudWxsPT10P3ZvaWQgMDp0LnN0YWNrfWB9ZnVuY3Rpb24gbChlKXtpZihlKXtpZihlLmluZGV4T2YoIjpcXCIpPi0xKXtjb25zdCB0PWUuc3BsaXQoIlxcIik7dFsyXT0iTG9jYWxQYXRoUGlpIixlPXQuam9pbigiXFwiKX1lbHNlIGlmKDA9PWUuaW5kZXhPZigiL2hvbWUvIil8fDA9PWUuaW5kZXhPZigiL1VzZXJzLyIpfHwwPT1lLmluZGV4T2YoIi9Wb2x1bWVzLyIpKXtjb25zdCB0PWUuc3BsaXQoIi8iKTt0WzJdPSJMb2NhbFBhdGhQaWkiLGU9dC5qb2luKCIvIil9ZS5pbmRleE9mKCIvdXNlci8iKT49MCYmKGU9ZS5yZXBsYWNlKGEsInVzZXIvVXNlclBpaS8iKSksZS5pbmRleE9mKCI/YnJhbmNoPSIpPj0wJiYoZT1lLnJlcGxhY2UocywiP2JyYW5jaD1Vc2VyUGlpLSIpKX1yZXR1cm4gZX19LDU2NDQ5ODooZSx0LG4pPT57InVzZSBzdHJpY3QiO24uZCh0LHskYjooKT0+aCxBTzooKT0+TixCNTooKT0+dSxCcjooKT0+bSxGQTooKT0+byxLeTooKT0+aSxNOTooKT0+YSxPSDooKT0+cixVVjooKT0+QyxaQjooKT0+UyxjeDooKT0+cyxlSTooKT0+ZCxmNjooKT0+YyxnTTooKT0+bCxpdzooKT0+UixrbTooKT0+dixuQjooKT0+QSxueTooKT0+ZyxySDooKT0+cCxyVDooKT0+SSxzbTooKT0+Zix2ajooKT0+SH0pO2NvbnN0IHI9Im91dGxvb2tkZXNrdG9wIixvPSJtYWNvdXRsb29rIixpPSJpb3NvdXRsb29rIixhPSJhbmRyb2lkb3V0bG9vayIscz0ib3V0bG9va2xpdGUiLGM9Im91dGxvb2tleHRlbnNpb24iLHU9Im5hdGl2ZSIsbD0ibzM2NXNoZWxsIixIPSJ0ZWFtcyIsZD0iYW5kcm9pZHRlYW1zIixmPSJpb3N0ZWFtcyIsUz0id2lkZ2V0IixwPSJ3aW4zMm91dGxvb2todWIiLEM9InRlYW1zaHViIix2PSJodWIiLGg9Im93YWh1YiIsbT0ibW9uYXJjaGh1YiIsST0iYW5kcm9pZGh1YiIsQT0iaW9zb3V0bG9va2h1YiIsZz0ibWFjb3V0bG9va2h1YiIsUj0ic2hhcmVwb2ludCIsTj0ibG9vcGFwcCJ9LDM4OTc0MzooZSx0LG4pPT57InVzZSBzdHJpY3QiO24uZCh0LHtlOigpPT5pfSk7dmFyIHI9bigxMTcwNDcpO2NvbnN0IG89LyglWzAtOUEtWl17Mn0pKy9nO2Z1bmN0aW9uIGkoZSl7Y29uc3QgdD0oMCxyLnkpKCkuY29va2llLG49dD90LnNwbGl0KCI7ICIpOltdO2ZvcihsZXQgdD0wO3Q8bi5sZW5ndGg7dCsrKXtjb25zdCByPW5bdF0uc3BsaXQoIj0iKTtpZihyWzBdLnJlcGxhY2UobyxkZWNvZGVVUklDb21wb25lbnQpPT1lKXtsZXQgZT1yLnNsaWNlKDEpLmpvaW4oIj0iKTtyZXR1cm4nIic9PT1lLmNoYXJBdCgwKSYmKGU9ZS5zbGljZSgxLC0xKSksZS5yZXBsYWNlKG8sZGVjb2RlVVJJQ29tcG9uZW50KX19fX0sMzU1NTQ1OihlLHQsbik9PnsidXNlIHN0cmljdCI7bi5kKHQse3E6KCk9Pml9KTt2YXIgcj1uKDY5MDQ2KTtjb25zdCBvPVsiSW52YWxpZExpY2Vuc2UiLCJUZW5hbnRBY2Nlc3NCbG9ja2VkIiwiVXNlckhhc05vTWFpbGJveCIsIkFjY291bnREaXNhYmxlZCIsIkVycm9yTm9uRXhpc3RlbnRNYWlsYm94IiwiRXJyb3JNZXNzYWdlU2l6ZUV4Y2VlZGVkIl07ZnVuY3Rpb24gaShlKXtyZXR1cm4oMCxyLmcpKG8sZSl9fSw3Mjc4MzU6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0IjtuLmQodCx7bTooKT0+aX0pO3ZhciByPW4oNjkwNDYpO2NvbnN0IG89WyJvdXQgb2YgbWVtb3J5Iiwibm90IGVub3VnaCBzdG9yYWdlIiwibm90IGVub3VnaCBtZW1vcnkgcmVzb3VyY2VzIiwiZXNwYWNpbyBkZSBhbG1hY2VuYW1pZW50byBpbnN1ZmljaWVudGUiLCJpbnN1ZmZpc2FudGUgcG91ciBjZXR0ZSIsIm5vIGhheSBzdWZpY2llbnRlIGVzcGFjaW8gZGUgcGlsYSIsImVzcGFjZSBwaWxlIGluc3VmZmlzYW50IiwiTWVtb3JpYSBlc2F1cml0YSIsIk3DqW1vaXJlIGluc3VmZmlzYW50ZSIsIk1lbW9yaWEgaW5zdWZpY2llbnRlIiwiTWVtw7NyaWEgaW5zdWZpY2llbnRlIl07ZnVuY3Rpb24gaShlKXtyZXR1cm4oMCxyLmcpKG8sZSl9fSw2MTU0NzA6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0IjtuLmQodCx7ZTooKT0+aX0pO3ZhciByPW4oNjkwNDYpO2NvbnN0IG89WyI6IFN5bnRheCBlcnJvciIsIlN5bnRheEVycm9yOiIsIkEgbmV0d29yayBlcnJvciBvY2N1cnJlZCIsIkZhaWxlZCB0byBmZXRjaCIsIk5ldHdvcmtFcnJvciIsIk5ldHdvcmsgcmVxdWVzdCBmYWlsZWQiLCJJbnRlcm5ldCBjb25uZWN0aW9uIGFwcGVhcnMgdG8gYmUiLCJUaGUgbmV0d29yayBjb25uZWN0aW9uIHdhcyBsb3N0LiIsIkNvdWxkIG5vdCBjb25uZWN0IHRvIHRoZSBzZXJ2ZXIiLCJjYW5jZWxsZWQuIFVSTDoiLCJFcnJvclNlc3Npb25UaW1lb3V0IiwiTG9hZGluZyBjaHVuayAiLCJVbmV4cGVjdGVkIHNlcnZlciByZXNwb25zZSAoMCkiLCJVbmV4cGVjdGVkIGVuZCBvZiBKU09OIGlucHV0IiwiVW5leHBlY3RlZCB0b2tlbiIsIkludmFsaWQgY2hhcmFjdGVyIiwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXQiLCJUaGUgb3BlcmF0aW9uIHdhcyBhYm9ydGVkIiwiRmFpbGVkIHRvIGxvYWQgamF2YXNjcmlwdCIsImRpc2FibGVBbGxSZXF1ZXN0cyIsIlRoZSBzZXJ2aWNlIHdvcmtlciBuYXZpZ2F0aW9uIHByZWxvYWQgcmVxdWVzdCBmYWlsZWQgZHVlIHRvIGEgbmV0d29yayBlcnJvciIsIlR5cGVFcnJvcjogTG9hZCBmYWlsZWQiLCJSZXF1ZXN0IGZhaWxlZCB0byBjb21wbGV0ZSJdO2Z1bmN0aW9uIGkoZSx0KXtyZXR1cm4oMCxyLmcpKG8sZSl8fChudWxsPT10P3ZvaWQgMDp0Lm5ldHdvcmtFcnJvcil8fCJDU1NfQ0hVTktfTE9BRF9GQUlMRUQiPT09KG51bGw9PXQ/dm9pZCAwOnQuY29kZSl9fSwyODA0NTQ6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0IjtuLmQodCx7dTooKT0+aX0pO3ZhciByPW4oNjkwNDYpO2NvbnN0IG89WyJjaHJvbWUtZXh0ZW5zaW9uOi8vIiwiZmlsZTovLy8iLCJidGdsc3MubmV0LyIsIigvVXNlcnMvIiwiKC9BcHBsaWNhdGlvbnMvIl07ZnVuY3Rpb24gaShlKXtyZXR1cm4oMCxyLmcpKG8sZSl9fSw2OTA0NjooZSx0LG4pPT57InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHIoZSx0KXtyZXR1cm4hIXQmJmUuc29tZSgoZT0+dC50b0xvd2VyQ2FzZSgpLmluZGV4T2YoZS50b0xvd2VyQ2FzZSgpKT4tMSkpfW4uZCh0LHtnOigpPT5yfSl9LDg1MjMxMzooZSx0LG4pPT57InVzZSBzdHJpY3QiO24uZCh0LHtwOigpPT5pfSk7dmFyIHI9big2OTA0Nik7Y29uc3Qgbz1bIk92ZXJCdWRnZXQiLCJUb29NYW55T2JqZWN0c09wZW5lZCIsIkVycm9yU2VydmVyQnVzeSIsIk1haWxib3hTdG9yZVVuYXZhaWxhYmxlIl07ZnVuY3Rpb24gaShlKXtyZXR1cm4oMCxyLmcpKG8sZSl9fSw5OTU1Mjc6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0IjtuLmQodCx7aTooKT0+aX0pO3ZhciByPW4oNjkwNDYpO2NvbnN0IG89WyJDb25uZWN0aW9uRmFpbGVkVHJhbnNpZW50IiwiU3RvcmFnZVRyYW5zaWVudCIsIk93YUxvY2tUcmFja2FibGVUaW1lb3V0IiwiTWFpbGJveEluVHJhbnNpdCIsIk1haWxib3hJbmZvU3RhbGUiLCJNYWlsYm94Q3Jvc3NTaXRlRmFpbG92ZXIiLCJPd2FMb2NrVGltZW91dCIsIkRDT3ZlcmxvYWRlZCIsIkVycm9ySW50ZXJuYWxTZXJ2ZXJUcmFuc2llbnRFcnJvciIsIkVycm9yUmlnaHRzTWFuYWdlbWVudFRyYW5zaWVudEV4Y2VwdGlvbiJdO2Z1bmN0aW9uIGkoZSl7cmV0dXJuKDAsci5nKShvLGUpfX0sNTE4ODIwOihlLHQsbik9PnsidXNlIHN0cmljdCI7bi5kKHQse3JWOigpPT5yLnJWLGttOigpPT5yLmttLGx6OigpPT5yLmx6LGpqOigpPT5yLmpqLERYOigpPT5yLkRYLGNsOigpPT5yLmNsLFhsOigpPT5vLlgsTFM6KCk9PnIuTFMsUDA6KCk9Pm8uUH0pO3ZhciByPW4oMjI3MzUyKSxvPW4oMzU4Njk1KTtuKDQyMjg2Nil9LDIyNzM1MjooZSx0LG4pPT57InVzZSBzdHJpY3QiO24uZCh0LHtEWDooKT0+ZCxMUzooKT0+YSxjbDooKT0+YyxqajooKT0+SCxrbTooKT0+bCxsejooKT0+dSxyVjooKT0+c30pO3ZhciByPW4oMTE3MDQ3KSxvPW4oNjkzNjk2KTtjb25zdCBpPSJvbGstIjtmdW5jdGlvbiBhKGUsdCxuKXt2YXIgYTtpZihkKGUpKXRyeXtjb25zdCByPSgwLG8uYTQpKCJsb2NhbFN0b3JhZ2VPd2FQcmVmaXgiKSxhPXI/aSt0OnQscz1yP3Q6aSt0O2UubG9jYWxTdG9yYWdlLnNldEl0ZW0oYSxuKSxlLmxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKHMpfWNhdGNoKGUpe31lbHNle2NvbnN0IGU9KDAsci55KSgpO251bGw9PShhPW51bGw9PWU/dm9pZCAwOmUubG9jYWxTdG9yYWdlKXx8YS5zZXRJdGVtKHQsbil9fWZ1bmN0aW9uIHMoZSx0KXt2YXIgbixhO2NvbnN0IHM9KDAsby5hNCkoImxvY2FsU3RvcmFnZU93YVByZWZpeCIpLGM9cz9pK3Q6dCx1PXM/dDppK3Q7aWYoIWQoZSkpe2NvbnN0IGU9KDAsci55KSgpO3JldHVybihudWxsPT0obj1udWxsPT1lP3ZvaWQgMDplLmxvY2FsU3RvcmFnZSk/dm9pZCAwOm4uZ2V0SXRlbShjKSl8fChudWxsPT0oYT1udWxsPT1lP3ZvaWQgMDplLmxvY2FsU3RvcmFnZSk/dm9pZCAwOmEuZ2V0SXRlbSh1KSl9dHJ5e3JldHVybiBlLmxvY2FsU3RvcmFnZS5nZXRJdGVtKGMpfHxlLmxvY2FsU3RvcmFnZS5nZXRJdGVtKHUpfWNhdGNoKGUpe3JldHVybiBudWxsfX1mdW5jdGlvbiBjKGUsdCl7dmFyIG47aWYoIWQoZSkpe2NvbnN0IGU9KDAsci55KSgpO3JldHVybiBudWxsPT0obj1udWxsPT1lP3ZvaWQgMDplLmxvY2FsU3RvcmFnZSk/dm9pZCAwOm4ucmVtb3ZlSXRlbSh0KX10cnl7ZS5sb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0KT9lLmxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKHQpOmUubG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oaSt0KX1jYXRjaChlKXt9fWZ1bmN0aW9uIHUoZSl7aWYoZChlKSl0cnl7cmV0dXJuIGUubG9jYWxTdG9yYWdlLmxlbmd0aH1jYXRjaChlKXt9cmV0dXJuIDB9ZnVuY3Rpb24gbChlLHQpe2lmKGQoZSkpdHJ5e2NvbnN0IG49UmVnRXhwKCJeb2xrLSIpLHI9ZS5sb2NhbFN0b3JhZ2Uua2V5KHQpO2lmKHIpcmV0dXJuIG51bGw9PXI/dm9pZCAwOnIucmVwbGFjZShuLCIiKX1jYXRjaChlKXt9cmV0dXJuIG51bGx9ZnVuY3Rpb24gSChlLHQpe3JldHVybiBudWxsIT09KHMoZSx0KXx8cyhlLGkrdCkpfWZ1bmN0aW9uIGQoZSl7dHJ5e3JldHVybiBlJiYhIWUubG9jYWxTdG9yYWdlfWNhdGNoKGUpe3JldHVybiExfX19LDM1ODY5NTooZSx0LG4pPT57InVzZSBzdHJpY3QiO24uZCh0LHtQOigpPT5vLFg6KCk9Pml9KTt2YXIgcj1uKDIyNzM1Mik7ZnVuY3Rpb24gbyhlLHQpeygwLHIuTFMpKHNlbGYsZSx0KX1mdW5jdGlvbiBpKGUpeygwLHIuY2wpKHNlbGYsZSl9fSw0OTgwNDc6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0IjtuLmQodCx7d3A6KCk9PmgsTk86KCk9PkMsQ1o6KCk9PnYsS2Q6KCk9PmEseiQ6KCk9PnB9KTt2YXIgcj1uKDI2OTM5OSk7Y29uc3Qgbz17fSxpPSJsb2NhbGVzIjtmdW5jdGlvbiBhKGUsdCxuKXtuJiYoMCxyLmhZKShpKTtsZXQgYT1vW2VdO3JldHVybiBhP24mJigwLHIuRWIpKGkpOigoMCxyLnlJKSgibGNfcyIsdHx8IndwIiksYT1hc3luYyBmdW5jdGlvbihlKXtsZXQgdCxuPWZ1bmN0aW9uKGUpe2Zvcig7dS50ZXN0KGUpOyllPWUucmVwbGFjZSh1LCIvIik7cmV0dXJuIGV9KGUpO2MuaGFzKG4pPy9iTz1cZCsvLnRlc3Qobil8fChuPWAke259JHtuLmluY2x1ZGVzKCI/Iik/IiYiOiI/In1iTz0xYCk6Yy5hZGQobik7dHJ5e3Q9YXdhaXQgZmV0Y2gobil9Y2F0Y2goZSl7dGhyb3cgbCgiZmV0Y2giLGUsbiwhMCwwKX1jb25zdCByPXQuc3RhdHVzO2lmKDIwMCE9cil0aHJvdyBsKCJzdGF0dXMiLG51bGwsbixyPj01MDB8fDQwND09PXJ8fDQxOD09cixyKTtsZXQgbzt0cnl7bz1hd2FpdCB0LnRleHQoKTtjb25zdCBuPUpTT04ucGFyc2Uobyk7cmV0dXJuIGMuZGVsZXRlKGUpLG59Y2F0Y2goZSl7dGhyb3cgbCgicGFyc2UiLGUsbiwhMSxyLG8pfX0oZSksbiYmYS50aGVuKCgoKT0+eygwLHIuRWIpKGkpfSkpLHQmJihvW2VdPWEsYS5jYXRjaCgoKCk9PntkZWxldGUgb1tlXX0pKSkpLGF9Y29uc3Qgcz0iYk89MSIsYz1uZXcgU2V0LHU9L1wvW14vXStcL1wuXC5cLy9nO2Z1bmN0aW9uIGwoZSx0LG4scixvLGkpe2NvbnN0IGE9bmV3IEVycm9yKCJGYWlsZWQgdG8gbG9hZCBsb2NhbGl6ZWQgc3RyaW5ncyIpO3JldHVybiByPXJ8fHQgaW5zdGFuY2VvZiBET01FeGNlcHRpb258fHQgaW5zdGFuY2VvZiBUeXBlRXJyb3J8fCFuLmluY2x1ZGVzKHMpLGEuZGlhZ25vc3RpY0luZm89SlNPTi5zdHJpbmdpZnkoe3N0YWdlOmUsdXJsOm4sc3RhdHVzOm8saW5uZXJFcnJvcjpudWxsPT10P3ZvaWQgMDp0Lm1lc3NhZ2UscmVzcG9uc2U6aT9pLmluZGV4T2YoJzxtZXRhIG5hbWU9InNjcmlwdFZlciIgJyk+LTE/ImluZGV4IHBhZ2UiOiJ1bmtub3duIjoibm9uZSJ9KSxhLnJlcXVlc3Q9bixyJiYoYS5uZXR3b3JrRXJyb3I9ITApLGEuaHR0cFN0YXR1cz1vLGF9dmFyIEg9big1MTg4MjApLGQ9big0OTI5ODIpO2NvbnN0IGY9Ik93YVByZWxvYWRTdHJpbmdzIjtsZXQgUz1bXTtmdW5jdGlvbiBwKGUpe3ZhciB0O3RyeXtjb25zdCBuPSgwLEguclYpKHNlbGYsKDAsZC5NcSkoKStmKTtpZihuKXtjb25zdCByPUpTT04ucGFyc2Uobik7aWYoKG51bGw9PSh0PXJbMF0pP3ZvaWQgMDp0LmluZGV4T2YoKDAsZC5WSikoKSkpPi0xKWZvcihjb25zdCB0IG9mIHIpYSh0LGUpfX1jYXRjaChlKXt9fWZ1bmN0aW9uIEMoZSl7UyYmUy5wdXNoKGUpfWZ1bmN0aW9uIHYoKXsoMCxILkxTKShzZWxmLCgwLGQuTXEpKCkrZixKU09OLnN0cmluZ2lmeShTKSksUz12b2lkIDB9Y29uc3QgaD0iT3dhTG9jYWxlIn0sMTU2MzM0OihlLHQsbik9PnsidXNlIHN0cmljdCI7bi5kKHQse0FaOigpPT51LE1fOigpPT5vLHIwOigpPT5zLHROOigpPT5pfSk7bGV0IHI9ITE7ZnVuY3Rpb24gbygpe3JldHVybiByfWZ1bmN0aW9uIGkoZSl7cj1lfWxldCBhPSExO2Z1bmN0aW9uIHMoZSl7YT1lfWxldCBjPSExO2Z1bmN0aW9uIHUoZSl7Yz1lfX0sNjQ1MDUzOihlLHQsbik9PnsidXNlIHN0cmljdCI7bi5kKHQseyRzOigpPT51LEFrOigpPT5hLERVOigpPT5ILEZoOigpPT5jLEc6KCk9PmgsS0U6KCk9PkksTV86KCk9Pm8uTV8sTkg6KCk9PnksVDQ6KCk9PmcsWXo6KCk9PkEsYWQ6KCk9PkMsZEg6KCk9PmwsZE86KCk9PlIsZUY6KCk9PlMsZko6KCk9PlUsaEQ6KCk9Pk4sbDk6KCk9Pm0sb1E6KCk9PmYscVM6KCk9PmQscjY6KCk9PnMseGs6KCk9PnAsemU6KCk9PnZ9KTt2YXIgcj1uKDYwNDE5MSksbz1uKDE1NjMzNCk7Y29uc3QgaT1uZXcgci5IZCgoKCk9PlByb21pc2UuYWxsKFtuLmUoODYyMTg2KSxuLmUoNDkwMTQwKV0pLnRoZW4obi5iaW5kKG4sNDkwMTQwKSkpKSxhPW5ldyByLl81KGksKGU9PmUuZ2V0QXV0aFRva2VuRnJvbU1ldGFPc0h1YikpLHM9bmV3IHIuXzUoaSwoZT0+ZS5nZXRPd2FBdXRoVG9rZW5Gcm9tTWV0YU9zSHViKSksYz0obmV3IHIuXzUoaSwoZT0+ZS5vcGVuQ2FsZW5kYXJJdGVtKSksbmV3IHIuXzUoaSwoZT0+ZS5jb21wb3NlTWVldGluZykpLG5ldyByLl81KGksKGU9PmUub3Blbk1haWxJdGVtKSkpLHU9bmV3IHIuXzUoaSwoZT0+ZS5jb21wb3NlTWFpbCkpLGw9bmV3IHIuXzUoaSwoZT0+ZS5yZXBseU1haWwpKSxIPW5ldyByLl81KGksKGU9PmUucmVwbHlBbGxNYWlsKSksZD0obmV3IHIuXzUoaSwoZT0+ZS5mb3J3YXJkTWFpbCkpLG5ldyByLl81KGksKGU9PmUuZXhlY3V0ZURlZXBMaW5rKSkpLGY9bmV3IHIuXzUoaSwoZT0+ZS5nZXRDb250ZXh0KSksUz0obmV3IHIuXzUoaSwoZT0+ZS5jaGVja0NhbGVuZGFyQ2FwYWJpbGl0eSkpLG5ldyByLl81KGksKGU9PmUuY2hlY2tNYWlsQ2FwYWJpbGl0eSkpLG5ldyByLl81KGksKGU9PmUuY2hlY2tEaWFsb2dDYXBhYmlsaXR5KSksbmV3IHIuXzUoaSwoZT0+ZS5pc0RhcmtUaGVtZSkpKSxwPShuZXcgci5fNShpLChlPT5lLmpvaW5UZWFtc01lZXRpbmcpKSxuZXcgci5fNShpLChlPT5lLm1vZGFsT3BlbmVkKSksbmV3IHIuXzUoaSwoZT0+ZS5zdWJtaXRUYXNrKSksbmV3IHIuXzUoaSwoZT0+ZS5ub3RpZnlTdWNjZXNzKSkpLEM9KG5ldyByLl81KGksKGU9PmUubm90aWZ5RmFpbHVyZSkpLG5ldyByLl81KGksKGU9PmUubm90aWZ5T3RoZXJGYWlsdXJlKSksbmV3IHIuXzUoaSwoZT0+ZS5ub3RpZnlBcHBMb2FkZWQpKSksdj0obmV3IHIuXzUoaSwoZT0+ZS5yZWdpc3RlcklzRGFya1RoZW1lT25DaGFuZ2VIYW5kbGVyKSksbmV3IHIuXzUoaSwoZT0+ZS5pbml0aWFsaXplTWV0YU9zQ2FwYWJpbGl0aWVzKSkpLGg9bmV3IHIuXzUoaSwoZT0+ZS5oYW5kbGVUaGVtZUNoYW5nZSkpLG09bmV3IHIuXzUoaSwoZT0+ZS5pc01ldGFPc0FwcFNka0luaXRpYWxpemVkKSksST1uZXcgci5fNShpLChlPT5lLmluaXRpYWxpemVNZXRhT3NBcHBTZGspKSxBPW5ldyByLl81KGksKGU9PmUucmVnaXN0ZXJPbkxvYWRIYW5kbGVyKSksZz1uZXcgci5fNShpLChlPT5lLnJlZ2lzdGVyQmVmb3JlVW5sb2FkSGFuZGxlcikpLFI9bmV3IHIuXzUoaSwoZT0+ZS5zdGFydENhbGwpKSxOPW5ldyByLl81KGksKGU9PmUub3BlbkNoYXQpKSxVPW5ldyByLl81KGksKGU9PmUub3Blbkdyb3VwQ2hhdCkpLHk9KG5ldyByLl81KGksKGU9PmUub3BlbikpLG5ldyByLl81KGksKGU9PmUuY2xvc2UpKSl9LDc0NTM5OTooZSx0LG4pPT57InVzZSBzdHJpY3QiO2xldCByO2Z1bmN0aW9uIG8oZSl7cmV0dXJuIHJ8fChyPWkoKSkscltlXX1mdW5jdGlvbiBpKCl7Y29uc3QgZT1BcnJheS5mcm9tKHdpbmRvdy5kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgibWV0YSIpKSx0PXt9O2Zvcihjb25zdCBuIG9mIGUpdFtuLm5hbWVdPW4uY29udGVudDtyZXR1cm4gdH1uLmQodCx7UHY6KCk9PmksWlA6KCk9Pm99KX0sMTkzOTMzOihlLHQsbik9PnsidXNlIHN0cmljdCI7bi5kKHQse2EkOigpPT5jLGNnOigpPT5zLHdCOigpPT5hfSk7dmFyIHI9big3NDUzOTkpO2Z1bmN0aW9uIG8oZT0iIix0PSIiKXtpZihlJiZlLmluZGV4T2YoIi8iKT4tMSYmdClyZXR1cm4gZSt0fWNvbnN0IGk9IkNvbGxlY3Rvci8zLjAvIixhPSJPbmVDb2xsZWN0b3IvMS4wLyI7ZnVuY3Rpb24gcygpe3JldHVybiBvKCgwLHIuWlApKCJhcmlhVXJsIiksaSl9ZnVuY3Rpb24gYygpe3JldHVybiBvKCgwLHIuWlApKCJhcmlhVXJsIiksYSl9fSw1Mzg2NTI6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0IjtuLmQodCx7X0E6KCk9Pmwsb0g6KCk9PmEsc2o6KCk9PnUsdUQ6KCk9PnN9KTt2YXIgcj1uKDc0NTM5OSk7Y29uc3Qgbz1bIlVua25vd24iLCJXVyIsIkRvZ2Zvb2QiLCJTSVAiLCJCbGFja0ZvcmVzdCIsIkRPTk1UIiwiTVNJVCIsIkdhbGxhdGluIiwiU0RGVjIiLCJQRFQiLCJUREYiLCJJVEFSIl0saT1bIlVua25vd24iLCJBRzA4IiwiQUcwOSIsIkJsYWNrRm9yZXN0IiwiRElUQVIiLCJEb0QiLCJEb2dmb29kIiwiR2FsbGF0aW4iLCJHQ0NNb2RlcmF0ZSIsIkdjY0hpZ2giLCJHb3ZDbG91ZCIsIklUQVIiLCJQcm9kIl07ZnVuY3Rpb24gYSgpe2NvbnN0IGU9KCgwLHIuWlApKCJwaHlzaWNhbFJpbmciKXx8IiIpLnRvTG93ZXJDYXNlKCk7cmV0dXJuIG8uZmlsdGVyKCh0PT50LnRvTG93ZXJDYXNlKCk9PT1lKSlbMF18fCJVbmtub3duIn1mdW5jdGlvbiBzKCl7Y29uc3QgZT0oKDAsci5aUCkoImVudmlyb25tZW50Iil8fCIiKS50b0xvd2VyQ2FzZSgpO3JldHVybiBpLmZpbHRlcigodD0+dC50b0xvd2VyQ2FzZSgpPT09ZSkpWzBdfHwiVW5rbm93biJ9bGV0IGM7ZnVuY3Rpb24gdSgpe2lmKHZvaWQgMD09PWMpe2NvbnN0IGU9YSgpO2M9IkRvZ2Zvb2QiPT1lfHwiU0RGVjIiPT1lfHwiRG9nZm9vZCI9PXMoKX1yZXR1cm4gY31mdW5jdGlvbiBsKCl7Y29uc3QgZT1zKCk7cmV0dXJuIkFHMDgiPT1lfHwiQUcwOSI9PWV9fSw2OTM2OTY6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0IjtuLmQodCx7SUw6KCk9PnMsVTc6KCk9PmMsYTQ6KCk9PmF9KTt2YXIgcj1uKDc0NTM5OSk7bGV0IG8saTtmdW5jdGlvbiBhKGUpe3JldHVybiBzKCkuaW5kZXhPZihlKT4tMX1mdW5jdGlvbiBzKCl7aWYoIW8pe2NvbnN0IGU9KDAsci5aUCkoImJvb3RGbGlnaHRzIik7bz1lP2Uuc3BsaXQoIiwiKS5tYXAoKGU9PmUuc3BsaXQoIjoiKVswXSkpOltdfXJldHVybiBvfWZ1bmN0aW9uIGMoKXtpZighaSl7Y29uc3QgZT0oMCxyLlpQKSgiYm9vdEZsaWdodHMiKTtpPWU/ZS5zcGxpdCgiLCIpOltdfXJldHVybiBpfX0sMjY5Mzk5OihlLHQsbik9PnsidXNlIHN0cmljdCI7bi5kKHQse1JuOigpPT5ILHlJOigpPT5BLGJ6OigpPT5VLEFvOigpPT5jLFZUOigpPT5wLHBpOigpPT5kLE4kOigpPT5nLHhiOigpPT5mLGJkOigpPT55LEViOigpPT5oLHQ4OigpPT5DLGhZOigpPT52LEpZOigpPT5SLFFxOigpPT5JfSk7dmFyIHI9big1Mzg2NTIpLG89big0NTg4MTcpLGk9big0MjI4NjYpO2NvbnN0IGE9bnVsbD09c2VsZj92b2lkIDA6c2VsZi5wZXJmb3JtYW5jZSxzPXt9O2Z1bmN0aW9uIGMoKXtyZXR1cm4gaS5nNC52ZXJib3NlKCJbQm9vdE1lbW9yeV0gZ2V0Qm9vdE1lbW9yeSAiK3MpLEpTT04uc3RyaW5naWZ5KHMpfWNvbnN0IHU9bnVsbD09c2VsZj92b2lkIDA6c2VsZi5wZXJmb3JtYW5jZSxsPXt9O2Z1bmN0aW9uIEgoZSl7KDAsby5KSSkoImJwbSIpJiZzZWxmLnBlcmZvcm1hbmNlLm1hcmsoZSksdSYmKGxbZV09TWF0aC5mbG9vcihwZXJmb3JtYW5jZS5ub3coKSksZnVuY3Rpb24oZSl7aWYoYSl7Y29uc3QgdD1zZWxmLnBlcmZvcm1hbmNlO3QubWVtb3J5JiYoc1tlXT17c2l6ZTp0Lm1lbW9yeS51c2VkSlNIZWFwU2l6ZX0pfX0oZSkpfWZ1bmN0aW9uIGQoKXt2YXIgZSx0O2NvbnN0IG49dSYmc2VsZi5wZXJmb3JtYW5jZS50aW1pbmc7aWYobiYmKGwuaW5fZT1uLnJlc3BvbnNlRW5kLW4uZmV0Y2hTdGFydCwoMCxyLnNqKSgpKSl7Y29uc3Qgcj1uLm5hdmlnYXRpb25TdGFydCxvPXUmJihudWxsPT0odD1udWxsPT0oZT1zZWxmLnBlcmZvcm1hbmNlKT92b2lkIDA6ZS5nZXRFbnRyaWVzQnlUeXBlKCJuYXZpZ2F0aW9uIikpP3ZvaWQgMDp0WzBdKSxpPShudWxsPT1vP3ZvaWQgMDpvLndvcmtlclN0YXJ0KXx8MCxhPVN0cmluZy5mcm9tQ2hhckNvZGUoLi4uW24ucmVkaXJlY3RTdGFydC1yLG4ucmVkaXJlY3RFbmQtcixuLnVubG9hZEV2ZW50U3RhcnQtcixuLnVubG9hZEV2ZW50RW5kLXIsbi5mZXRjaFN0YXJ0LXIsbi5kb21haW5Mb29rdXBTdGFydC1yLG4uZG9tYWluTG9va3VwRW5kLXIsbi5jb25uZWN0U3RhcnQtcixuLnNlY3VyZUNvbm5lY3Rpb25TdGFydC1yLG4uY29ubmVjdEVuZC1yLG4ucmVxdWVzdFN0YXJ0LXIsbi5yZXNwb25zZVN0YXJ0LXIsbi5yZXNwb25zZUVuZC1yLG4uZG9tTG9hZGluZy1yLG4uZG9tSW50ZXJhY3RpdmUtcixuLmRvbUNvbXBsZXRlLXIsbi5kb21Db250ZW50TG9hZGVkRXZlbnRTdGFydC1yLG4uZG9tQ29udGVudExvYWRlZEV2ZW50RW5kLXIsbi5sb2FkRXZlbnRTdGFydC1yLG4ubG9hZEV2ZW50RW5kLXIsaV0ubWFwKChlPT5NYXRoLm1pbihNYXRoLm1heChlLDApLDExMTQxMTEpKSkpO2wuZmw9YX1yZXR1cm4gSlNPTi5zdHJpbmdpZnkobCl9ZnVuY3Rpb24gZigpe2NvbnN0IGU9T2JqZWN0LmtleXMobCkuZmlsdGVyKChlPT5lLmluZGV4T2YoIl9lIik+LTEpKS5yZWR1Y2UoKChlLHQpPT57Y29uc3Qgbj10LnNwbGl0KCJfIilbMF0scj1sW24rIl9zIl0sbz1sW24rIl9lIl07cmV0dXJuIm51bWJlciI9PXR5cGVvZiByJiYibnVtYmVyIj09dHlwZW9mIG8mJihlW25dPW8tciksZX0pLHt9KTtyZXR1cm4gSlNPTi5zdHJpbmdpZnkoZSl9bGV0IFM9Im5vbmUiO2Z1bmN0aW9uIHAoKXt2YXIgZSx0O2lmKHUpe2NvbnN0IG49bnVsbD09KHQ9bnVsbD09KGU9c2VsZi5wZXJmb3JtYW5jZSk/dm9pZCAwOmUuZ2V0RW50cmllc0J5VHlwZSgicmVzb3VyY2UiKSk/dm9pZCAwOnRbMF0scj1udWxsPT1uP3ZvaWQgMDpuLm5leHRIb3BQcm90b2NvbDtudWxsIT1yJiYoUz1yKX1yZXR1cm4gU31mdW5jdGlvbiBDKGUsdCl7cmV0dXJuIGZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gZnVuY3Rpb24oLi4ucil7dCgpO2xldCBvPWUoLi4ucik7cmV0dXJuKG51bGw9PW8/dm9pZCAwOm8udGhlbik/bz1vLnRoZW4oKGU9PihuKCksZSkpKTpuKCksb319KGUsKCgpPT52KHQpKSwoKCk9PmgodCkpKX1mdW5jdGlvbiB2KGUpe0goYCR7ZX1fc2ApfWZ1bmN0aW9uIGgoZSl7Y29uc3QgdD1gJHtlfV9lYDtIKHQpLCgwLG8uSkkpKCJicG0iKSYmc2VsZi5wZXJmb3JtYW5jZS5tZWFzdXJlKGUsYCR7ZX1fc2AsdCl9Y29uc3QgbT17fTtmdW5jdGlvbiBJKGUsdCl7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspe2NvbnN0IHI9dFtuXS5rZXk7ciYmdFtuXS5wcm9taXNlLnRoZW4oKHQ9PnttW2VdPXJ9KSkuY2F0Y2goKCgpPT57fSkpfWNvbnN0IHI9dC5tYXAoKGU9PmUucHJvbWlzZSkpO3RyeXtyZXR1cm4gUHJvbWlzZS5hbGwocil9Y2F0Y2goZSl7Y29uc3Qgbj17cGs6dHlwZW9mIHQscHQ6dHlwZW9mIHIsc3Q6dHlwZW9mIHNlbGYuU3ltYm9sLHN0aTp0eXBlb2YgU3ltYm9sLml0ZXJhdG9yfTt0aHJvdyB0JiYobi5wa2w9dC5sZW5ndGgpLHImJihuLnBsPXIubGVuZ3RoLFN5bWJvbC5pdGVyYXRvciYmKG4ucGk9dHlwZW9mIHJbU3ltYm9sLml0ZXJhdG9yXSkpLGUuZGlhZ25vc3RpY0luZm89SlNPTi5zdHJpbmdpZnkobiksZX19ZnVuY3Rpb24gQShlLHQpe21bZV18fChtW2VdPXQpfWZ1bmN0aW9uIGcoKXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkobSl9ZnVuY3Rpb24gUihlKXtyZXR1cm4gc2VsZi5kb2N1bWVudCYmInZpc2libGUiPT1zZWxmLmRvY3VtZW50LnZpc2liaWxpdHlTdGF0ZT9zZWxmLnJlcXVlc3RBbmltYXRpb25GcmFtZSgoZnVuY3Rpb24oKXtlKCEwKX0pKTp2b2lkIGUoITEpfWNvbnN0IE49e307ZnVuY3Rpb24gVShlLHQpe2lmKCFOW2VdJiYiUGVyZm9ybWFuY2VPYnNlcnZlciJpbiBzZWxmJiYic3VwcG9ydGVkRW50cnlUeXBlcyJpbiBzZWxmLlBlcmZvcm1hbmNlT2JzZXJ2ZXImJnNlbGYuUGVyZm9ybWFuY2VPYnNlcnZlci5zdXBwb3J0ZWRFbnRyeVR5cGVzLnNvbWUoKHQ9PnQ9PWUpKSl7Y29uc3QgdD1bXSxuPW5ldyBQZXJmb3JtYW5jZU9ic2VydmVyKChlPT57dC5tYXAoKHQ9PnQoZS5nZXRFbnRyaWVzKCkpKSl9KSk7TltlXT17b2JzZXJ2ZXI6bixjYWxsYmFja3M6dH0sbi5vYnNlcnZlKHtlbnRyeVR5cGVzOltlXX0pfWNvbnN0IG49TltlXTtyZXR1cm4gbiYmbi5jYWxsYmFja3MucHVzaCh0KSxudWxsPT1uP3ZvaWQgMDpuLm9ic2VydmVyfWZ1bmN0aW9uIHkoKXtyZXR1cm4gc2VsZi5wZXJmb3JtYW5jZT9zZWxmLnBlcmZvcm1hbmNlLm5vdygpOkRhdGUubm93KCl9fSwzMDcyNzQ6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0IjtsZXQgcjtmdW5jdGlvbiBvKGUpe3I9ZX1mdW5jdGlvbiBpKCl7cmV0dXJuIHJ9bi5kKHQse0Y6KCk9PmksZzooKT0+b30pfSw0NTg4MTc6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0IjtuLmQodCx7Skk6KCk9PnUsUHo6KCk9PnAsV006KCk9PkgsX0M6KCk9PnMsaGo6KCk9PmQsbW46KCk9PmMsbk06KCk9PmEsck86KCk9PlN9KTt2YXIgcj1uKDExNzA0Nyk7bGV0IG8saT1udWxsO2Z1bmN0aW9uIGEoZSl7cmV0dXJuIGV8fChlPSgwLHIueSkoKS5sb2NhdGlvbiksZT09PWxvY2F0aW9uP2l8fChpPWwobG9jYXRpb24pKTpsKGUpfWZ1bmN0aW9uIHMoKXtpPWwobG9jYXRpb24pfWZ1bmN0aW9uIGMoZSl7cmV0dXJuIGk/aVtlXTphKClbZV19ZnVuY3Rpb24gdShlKXtyZXR1cm4gaT9lIGluIGk6T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGEoKSxlKX1mdW5jdGlvbiBsKGUpe3JldHVybiB2b2lkIDAhPT1lJiZlLnNlYXJjaD9TKGUuc2VhcmNoLnN1YnN0cigxKSk6e319ZnVuY3Rpb24gSCgpe3JldHVybiBvfHwobz1mdW5jdGlvbigpe2NvbnN0IGU9Yygic291cmNlIik7aWYoZSl7Y29uc3QgZT1kKGxvY2F0aW9uLnNlYXJjaCwic291cmNlIik7aGlzdG9yeS5yZXBsYWNlU3RhdGUoaGlzdG9yeS5zdGF0ZSwiLyIsbG9jYXRpb24ucGF0aG5hbWUrZSl9cmV0dXJuIGV9KCkpfWZ1bmN0aW9uIGQoZSx0KXtjb25zdCBuPW5ldyBSZWdFeHAoIihcXD98JikiK3QrIj1cXHcqJj8iLCJnIik7bGV0IHI9ZS5zcGxpdChuKS5qb2luKCIiKTtjb25zdCBvPXJbci5sZW5ndGgtMV07cmV0dXJuIj8iIT09byYmIiYiIT09b3x8KHI9ci5zdWJzdHIoMCxyLmxlbmd0aC0xKSkscn1jb25zdCBmPS9cKy9nO2Z1bmN0aW9uIFMoZSl7Y29uc3QgdD17fTtpZigic3RyaW5nIj09dHlwZW9mIGUmJmUubGVuZ3RoPjApe2NvbnN0IG49ZS5zcGxpdCgiJiIpLHI9bi5sZW5ndGg+MWUzPzFlMzpuLmxlbmd0aDtmb3IobGV0IGU9MDtlPHI7KytlKXtjb25zdCByPW5bZV0ucmVwbGFjZShmLCIlMjAiKS5zcGxpdCgiPSIpO3RbZGVjb2RlVVJJQ29tcG9uZW50KHJbMF0pXT1kZWNvZGVVUklDb21wb25lbnQoci5zbGljZSgxKS5qb2luKCI9IikpfX1yZXR1cm4gdH1mdW5jdGlvbiBwKGUpe3JldHVybiBlP09iamVjdC5rZXlzKGUpLm1hcCgodD0+ZW5jb2RlVVJJQ29tcG9uZW50KHQpKyhlW3RdPyI9IitlbmNvZGVVUklDb21wb25lbnQoZVt0XSk6IiIpKSkuam9pbigiJiIpOiIifX0sODY5NDE3OihlLHQsbik9PnsidXNlIHN0cmljdCI7bi5kKHQse1M6KCk9PnV9KTt2YXIgcj1uKDMzNjUyKSxvPW4oODg1MTg5KSxpPW4oMjcwMDU2KSxhPW4oNDkyOTgyKSxzPW4oNDIyODY2KSxjPW4oNTg4Mzk5KTtmdW5jdGlvbiB1KGUsdCxuKXtzLmc0LmluZm8oYFNlcnZpY2VBY3Rpb24gJHtlfWAsInNlcnZpY2UiKTtjb25zdCB1PSgwLG8uaUUpKCk7bGV0IGw7aWYoKDAsaS5aKSh1LCJBY2N0LU1ha2VTZXJ2aWNlUmVxdWVzdE1haWxib3giLG51bGw9PW4/dm9pZCAwOm4ubWFpbGJveEluZm8pLG51bGw9PW4/dm9pZCAwOm4uZW5kcG9pbnQpbD1uLmVuZHBvaW50O2Vsc2V7bD1gJHsobnVsbD09bj92b2lkIDA6bi5jdXN0b21CYXNlVXJsKT9uLmN1c3RvbUJhc2VVcmxTdWJQYXRoP24uY3VzdG9tQmFzZVVybC5jb25jYXQobi5jdXN0b21CYXNlVXJsU3ViUGF0aCk6bi5jdXN0b21CYXNlVXJsOihudWxsPT1uP3ZvaWQgMDpuLmN1c3RvbUJhc2VVcmxTdWJQYXRoKT91LmJhc2VVcmwuY29uY2F0KCIvIituLmN1c3RvbUJhc2VVcmxTdWJQYXRoKTp1LmJhc2VVcmx9L3NlcnZpY2Uuc3ZjP2FjdGlvbj0ke2V9YH1yZXR1cm4odm9pZCAwIT09dS5pc1VzZXJJZGxlJiZ1LmlzVXNlcklkbGUoKXx8MD09KG51bGw9PW4/dm9pZCAwOm4uaXNVc2VyQWN0aXZpdHkpKSYmKGw9KDAsYy5aKShsLHtVQToiMCJ9KSksbD0oMCxjLlopKGwse2FwcDooMCxhLk1xKSgpfSwhMCksKDAsci5aKShlLGwsMSxuLHQpfX0sMzcwNzg0OihlLHQsbik9PnsidXNlIHN0cmljdCI7bi5kKHQse3E6KCk9Pml9KTt2YXIgcj1uKDg4NTE4OSk7Y29uc3Qgbz0iSWRUeXBlIjtmdW5jdGlvbiBpKGUsdCl7dmFyIG47Y29uc3Qgbz0oMCxyLmlFKSgpOyJJbW11dGFibGVJZCI9PXQ/KG51bGw9PShuPW8uaXNGZWF0dXJlRW5hYmxlZCk/dm9pZCAwOm4uY2FsbChvLCJmd2staW1tdXRhYmxlLWlkcyIpKSYmYShlLHQpOmEoZSx0KX1mdW5jdGlvbiBhKGUsdCl7Y29uc3Qgbj1mdW5jdGlvbihlKXtyZXR1cm4gcyhlKT9lLmdldCgicHJlZmVyIik6ZS5wcmVmZXJ9KGUpO2lmKCFufHxuLmluZGV4T2Yobyk8MCl7Y29uc3Qgcj1mdW5jdGlvbihlLHQpe3JldHVybiB0P2Ake3R9LCAke2V9YDplfShgSWRUeXBlPSIke3R9ImAsbik7cyhlKT9lLnNldCgicHJlZmVyIixyKTplLnByZWZlcj1yfX1mdW5jdGlvbiBzKGUpe3JldHVybiEhZS5nZXQmJiEhZS5zZXR9fSw2MzUyNDQ6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiByKGUpe2NvbnN0IHQ9ZnVuY3Rpb24oZSl7Y29uc3QgdD0nZXhjaGFuZ2UuYmVoYXZpb3I9IkluY2x1ZGVUaGlyZFBhcnR5T25saW5lTWVldGluZ1Byb3ZpZGVycyInLG49byhlKT9lLmdldCgicHJlZmVyIik6ZS5wcmVmZXI7cmV0dXJuIG4/YCR7bn0sICR7dH1gOnR9KGUpO28oZSk/ZS5zZXQoInByZWZlciIsdCk6ZS5wcmVmZXI9dH1mdW5jdGlvbiBvKGUpe3JldHVybiEhZS5nZXQmJiEhZS5zZXR9bi5kKHQse1o6KCk9PnJ9KX0sNzY0MDUwOihlLHQsbik9PnsidXNlIHN0cmljdCI7bi5kKHQse056OigpPT5pLFhMOigpPT5hLHNfOigpPT5vfSk7dmFyIHI9big0OTI5ODIpO2Z1bmN0aW9uIG8oZSl7bGV0IHQ9KDAsci5laikocygiWC1PV0EtQ0FOQVJZIixlKSk7Y29uc3Qgbj0oMCxyLmVqKShzKCJYLU9XQS1DQU5BUlktUFJEIixlKSksbz0oMCxyLmVqKShzKCJYLU9XQS1DQU5BUlktQkYiLGUpKTtyZXR1cm4gdCYmMCE9dC5sZW5ndGg/KG4mJm4ubGVuZ3RoPjAmJih0Kz0iLCIrbiksbyYmby5sZW5ndGg+MCYmKHQrPSIsIitvKSx0KTpudWxsfWZ1bmN0aW9uIGkoZSl7cmV0dXJuIG8oZSl8fCJYLU9XQS1DQU5BUllfY29va2llX2lzX251bGxfb3JfZW1wdHkifWZ1bmN0aW9uIGEoZSl7cmV0dXJuKDAsci5laikocygiWC1PV0EtQ0FOQVJZLURFQlVHIixlKSl9ZnVuY3Rpb24gcyhlLHQpe3JldHVybiBlKygodD10fHwoMCxyLmVqKSgidGFyZ2V0U2VydmVyIikpPyJfIit0LnRvTG9jYWxlTG93ZXJDYXNlKCk6IiIpfX0sMjcwMDU2OihlLHQsbik9PnsidXNlIHN0cmljdCI7bi5kKHQse1o6KCk9Pml9KTt2YXIgcj1uKDc3MjE5Niksbz1uKDUzODY1Mik7ZnVuY3Rpb24gaShlLHQsbil7dmFyIGk7aWYoKDAsby5zaikoKSYmKG51bGw9PShpPWUuaXNGZWF0dXJlRW5hYmxlZCk/dm9pZCAwOmkuY2FsbChlLCJhY2N0LW1haWxib3hpbmZvLWlubmVycmluZy10ZWxlbWV0cnkiKSkpe2NvbnN0IGU9ISEobnVsbD09bj92b2lkIDA6bi50eXBlKSYmISEobnVsbD09bj92b2lkIDA6bi51c2VySWRlbnRpdHkpJiYhIShudWxsPT1uP3ZvaWQgMDpuLm1haWxib3hTbXRwQWRkcmVzcyksbz1lJiYhIShudWxsPT1uP3ZvaWQgMDpuLnNvdXJjZUlkKSYmISEobnVsbD09bj92b2lkIDA6bi5tYWlsYm94UmFuayk7aWYoIWV8fCFvKXtjb25zdCBpPW5ldyBFcnJvcih0KTsoMCxyLkMpKHQse3Byb3ZpZGVkOmUsc3RvcmU6byx0eXBlOm51bGw9PW4/dm9pZCAwOm4udHlwZSx1c2VySWQ6dHlwZW9mKG51bGw9PW4/dm9pZCAwOm4udXNlcklkZW50aXR5KSxzbXRwOnR5cGVvZihudWxsPT1uP3ZvaWQgMDpuLm1haWxib3hTbXRwQWRkcmVzcyksc291cmNlSWQ6dHlwZW9mKG51bGw9PW4/dm9pZCAwOm4uc291cmNlSWQpLHJhbms6dHlwZW9mKG51bGw9PW4/dm9pZCAwOm4ubWFpbGJveFJhbmspLHN0YWNrOmkuc3RhY2t9KX19fX0sODg1MTg5OihlLHQsbik9PnsidXNlIHN0cmljdCI7bi5kKHQse2lFOigpPT5hLHFfOigpPT5pfSk7Y29uc3Qgcj17YmFzZVVybDoiL293YSIsaXNGZWF0dXJlRW5hYmxlZDooKT0+ITEsdGltZW91dE1TOjllNCxkaXNhYmxlQWxsUmVxdWVzdHM6ITEsaXNSZXNvdXJjZVRva2VuUHJlZmV0Y2hFbmFibGVkOiExfTtsZXQgbz1yO2Z1bmN0aW9uIGkoZSl7bz17Li4ubywuLi5lfX1mdW5jdGlvbiBhKCl7cmV0dXJuIG99fSwzMzMyNzA6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0IjtuLmQodCx7JEY6KCk9PkgsdVk6KCk9PnJ9KTtjb25zdCByPSJNUy1DViIsbz0iQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLyIsaT17bWF4Q29ycmVsYXRpb25WZWN0b3JMZW5ndGg6MTI3LGJhc2VMZW5ndGg6MjIsdmFsaWRhdGlvblBhdHRlcm46bmV3IFJlZ0V4cCgiXlsiK28rIl17MjJ9KC5bMC05XSspKyQiKX07dmFyIGE9IiIscz0wO2Z1bmN0aW9uIGMoKXtyZXR1cm4gYS5jb25jYXQoIi4iLHMudG9TdHJpbmcoKSl9ZnVuY3Rpb24gdSgpe3JldHVybiEhbChjKCkpJiZhLmxlbmd0aCsxKyhzKzErIiIpLmxlbmd0aDw9aS5tYXhDb3JyZWxhdGlvblZlY3Rvckxlbmd0aH1mdW5jdGlvbiBsKGUpe3JldHVybiBpLnZhbGlkYXRpb25QYXR0ZXJuLnRlc3QoZSkmJmUubGVuZ3RoPD1pLm1heENvcnJlbGF0aW9uVmVjdG9yTGVuZ3RofWZ1bmN0aW9uIEgoKXtyZXR1cm4gbChjKCkpP3UoKT8ocys9MSxjKCkpOm51bGw6KGE9ZnVuY3Rpb24oKXtmb3IodmFyIGU9IiIsdD0wO3Q8aS5iYXNlTGVuZ3RoO3QrKyllKz1vLmNoYXJBdChNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqby5sZW5ndGgpKTtyZXR1cm4gZX0oKSxzPTAsbChlPWMoKSk/ZToiIik7dmFyIGV9fSw0ODU5ODY6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0IjtuLmQodCx7Y0k6KCk9PmwsbkM6KCk9PnUscE06KCk9Pkh9KTt2YXIgcj1uKDg4NTE4OSksbz1uKDM3MDc4NCksaT1uKDI3MDA1NiksYT1uKDcyODIyKSxzPW4oNDkyOTgyKSxjPW4oNjM1MjQ0KTtjb25zdCB1PSJBdXRob3JpemF0aW9uIixsPSJYLU93YVdlYlNlc3Npb25UeXBlIjtmdW5jdGlvbiBIKGUsdCxuLEgpe2NvbnN0IGQ9KDAsYS5OKSgpO2RbIlgtUmVxLVNvdXJjZSJdPSgwLHMuTXEpKCk7Y29uc3QgZj0oMCxyLmlFKSgpOygwLGkuWikoZiwiQWNjdC1EZWZhdWx0SGVhZGVyc01haWxib3giLHQpLGYuaXNGZWF0dXJlRW5hYmxlZCgiZndrLXVzZUpzb25OZXRTZXJpYWxpemVyIikmJihkWyJYLVVzZUpzb25OZXRTZXJpYWxpemVyIl09IjEiKTtsZXQgUz1Qcm9taXNlLnJlc29sdmUoZCkscD1Qcm9taXNlLnJlc29sdmUodm9pZCAwKSxDPVByb21pc2UucmVzb2x2ZSgiIiksdj1Qcm9taXNlLnJlc29sdmUodm9pZCAwKTtyZXR1cm4hZSYmZi5nZXRBdXRoVG9rZW4mJihwPWYuZ2V0QXV0aFRva2VuKHZvaWQgMCx0KSxmLmdldFdlYlNlc3Npb25UeXBlJiYoQz1mLmdldFdlYlNlc3Npb25UeXBlKHQpKSksIW4mJmYuZ2V0QW5jaG9yTWFpbGJveCYmKHY9Zi5nZXRBbmNob3JNYWlsYm94KHQpKSxTPVByb21pc2UuYWxsKFtwLEMsdl0pLnRoZW4oKChbZSx0LG5dKT0+KGUmJihkW3VdPWUsZi5nZXRXZWJTZXNzaW9uVHlwZSYmdCYmKGRbbF09dCkpLG4mJihkWyJ4LWFuY2hvcm1haWxib3giXT1uKSxkKSkpLCgwLG8ucSkoZCxudWxsIT1IP0g6IkltbXV0YWJsZUlkIiksKDAsYy5aKShkKSxTLmJlc3RFZmZvcnQ9ZCxTfX0sNzUwMTQyOihlLHQsbik9PnsidXNlIHN0cmljdCI7bi5kKHQse1o6KCk9Pm99KTt2YXIgcj1uKDQ4NTk4Nik7ZnVuY3Rpb24gbyhlKXtjb25zdCB0PShlPWV8fHt9KS5oZWFkZXJzP25ldyBIZWFkZXJzKGUuaGVhZGVycyk6bmV3IEhlYWRlcnMsbj17Li4uZSxtZXRob2Q6ZS5tZXRob2R8fCJQT1NUIixjcmVkZW50aWFsczoiaW5jbHVkZSIsaGVhZGVyczp0fSxvPW51bGw9PXQ/dm9pZCAwOnQuaGFzKCJBdXRob3JpemF0aW9uIiksaT1udWxsPT10P3ZvaWQgMDp0LmhhcygieC1hbmNob3JtYWlsYm94Iik7cmV0dXJuKDAsci5wTSkobyxlLm1haWxib3hJbmZvLGksZS5jdXN0b21JZFR5cGUpLnRoZW4oKGU9PihPYmplY3Qua2V5cyhlKS5mb3JFYWNoKChuPT57dC5zZXQobixlW25dKX0pKSxuKSkpfX0sMjQ1Mzk1OihlLHQsbik9PnsidXNlIHN0cmljdCI7bi5kKHQse0M6KCk9PmF9KTt2YXIgcj1uKDQ1ODgxNyksbz1uKDExNzA0Nyk7bGV0IGk9ITE7ZnVuY3Rpb24gYShlKXtpZighaSl7aT0hMDtjb25zdCB0PSgwLG8ueSkoKS5sb2NhdGlvbixuPSgwLHIubk0pKHQpO2xldCBhPSExO2NvbnN0IHM9ZT9lLmdldCgiWC1PV0EtQ2xhaW1DaGFsbGVuZ2UiKTp2b2lkIDA7cyYmbi5jYyE9PXMmJihuLmNjPWRlY29kZVVSSUNvbXBvbmVudChzKSxhPSEwKSx2b2lkIDA9PT1uLmF1dGhSZWRpcmVjdCYmKG4uYXV0aFJlZGlyZWN0PSJ0cnVlIixhPSEwKSxhJiYobi5zdGF0ZT0iMCIsdC5zZWFyY2g9Ij8iKygwLHIuUHopKG4pKX19fSwzMzY1MjooZSx0LG4pPT57InVzZSBzdHJpY3QiO24uZCh0LHtaOigpPT5ELGs6KCk9Pnh9KTt2YXIgcj1uKDk4MTU3MSksbz1uKDg4NTE4OSksaT1uKDI4MzMxMSksYT1uKDQ5Mjk4Mik7bGV0IHM9bnVsbCxjPW51bGw7YXN5bmMgZnVuY3Rpb24gdShlKXtudWxsPT1zJiYoKDAsYS5TbikoKXx8bnVsbCE9YyYmRGF0ZS5ub3coKS1jPDgyOGU1fHwoYz1EYXRlLm5vdygpLHM9c2VsZi5kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKSxzLnNldEF0dHJpYnV0ZSgiaWQiLCJiYWNrZ3JvdW5kYXV0aCIpLHMuc3R5bGUuZGlzcGxheT0ibm9uZSIsKDAsaS5aKSh7fSxlKS50aGVuKChlPT57MD09ZS5SZXN1bHRDb2RlJiZudWxsIT1lLkF1dGhlbnRpY2F0aW9uVXJsJiYiIiE9ZS5BdXRoZW50aWNhdGlvblVybD8ocyYmKHNlbGYuZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChzKSxzZWxmLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLGwsITEpLHMuc3JjPWUuQXV0aGVudGljYXRpb25VcmwpLHNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7bnVsbCE9cyYmSCgpfSksNmU0KSk6cz1udWxsfSkpLmNhdGNoKChmdW5jdGlvbigpe3M9bnVsbH0pKSkpfWZ1bmN0aW9uIGwoZSl7ZS5vcmlnaW49PXdpbmRvdy5sb2NhdGlvbi5vcmlnaW4mJmUuZGF0YSYmZS5kYXRhLnNwbGl0JiYoImJhY2tncm91bmRBdXRoUmVzcG9uc2UiPT1lLmRhdGEuc3BsaXQoIjoiKVswXSYmSCgpKX1mdW5jdGlvbiBIKCl7cyYmKHdpbmRvdy5kb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHMpLHM9bnVsbCx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsbCkpfXZhciBkPW4oOTcwMTExKTt2YXIgZj1uKDI0NTM5NSksUz1uKDc3MjE5NikscD1uKDExNzA0Nyk7bGV0IEM7Y29uc3Qgdj0iTmVlZHNBdXRoIjtmdW5jdGlvbiBoKGUsdCxuLHIpe2NvbnN0IGk9ZnVuY3Rpb24oZSx0KXtjb25zdCBuPSgwLG8uaUUpKCk7aWYoNDAxPT1lLnN0YXR1c3x8NDQwPT1lLnN0YXR1cyl7aWYoZnVuY3Rpb24oZSl7cmV0dXJuIWV8fCEoMCxkLlopKGUpJiYhMSE9PWUuYXV0aE5lZWRlZE9uVW5BdXRob3JpemVkfSh0KSlyZXR1cm4gbi5vbkF1dGhGYWlsZWQ/bi5vbkF1dGhGYWlsZWQoZS5oZWFkZXJzKTooMCxmLkMpKGUuaGVhZGVycyksZS5zb3VyY2U9dix2fWVsc2UgaWYoIWUub2spcmV0dXJuIDQxMj09ZS5zdGF0dXMmJmZ1bmN0aW9uKGUpe2lmKGUmJiI1Ij09ZS5nZXQoIlgtT1dBLUV4dGVuZGVkRXJyb3JDb2RlIikpe2NvbnN0IHQ9ZS5nZXQoIlgtT1dBLUV4dGVuZGVkRXJyb3JEYXRhIiksbj1lLmdldCgiWC1PV0EtRXh0ZW5kZWRFcnJvck1lc3NhZ2UiKTshQyYmdCYmKEM9ITAsKDAsUy5DKSgiUmVhY3RIaXBSZWRpcmVjdCIse2hpcFBhdGg6dCxoaXBUeXBlOm59LHtpc0NvcmU6ITB9KSwoMCxwLnkpKCkubG9jYXRpb24uaHJlZj10KX1yZXR1cm4gQ30oZS5oZWFkZXJzKT8oZS5zb3VyY2U9dix2KTplLmhlYWRlcnMmJmUuaGVhZGVycy5nZXQoIngtb3dhLWVycm9yIil8fGUuc3RhdHVzVGV4dDtyZXR1cm4gbnVsbH0odCxuKTtpZihuLnJldHVybkZ1bGxSZXNwb25zZU9uU3VjY2VzcylyZXR1cm4gdC5jYWxsc3RhY2tBdFJlcXVlc3Q9cix0LnJlc3BvbnNlRXJyb3JNZXNzYWdlPWBSZXF1ZXN0RmFpbGVkOiR7ZX0gd2l0aCAke3Quc291cmNlfWAsaT9Qcm9taXNlLnJlamVjdCh0KTpQcm9taXNlLnJlc29sdmUodCk7aWYoaSl7Y29uc3Qgbj1tKGUsaSx0LHIpO3Rocm93IG4ucmVzcG9uc2U9dCxufXJldHVybiBudWxsIT10LmhlYWRlcnMuZ2V0KCJYLU9XQS1TVE8iKSYmdShuKSxuLnJldHVyblJlc3BvbnNlSGVhZGVycz9Qcm9taXNlLnJlc29sdmUodCk6dC5qc29uKCkuY2F0Y2goKG49Pnt0aHJvdyBtKGUsbnVsbD09bj92b2lkIDA6bi5tZXNzYWdlLHQscil9KSl9ZnVuY3Rpb24gbShlLHQsbixyKXtjb25zdCBvPW5ldyBFcnJvcihgJHtlfSBmYWlsZWQ6ICR7dH1gKTtyZXR1cm4gciYmKG8uZGlhZ25vc3RpY0luZm89ciksby5mZXRjaEVycm9yVHlwZT10PT12PyJBdXRoTmVlZGVkIjoiU2VydmVyRmFpbHVyZSIsby5odHRwU3RhdHVzPW4uc3RhdHVzLG99dmFyIEk9big2Nzg3NiksQT1uKDI3MDA1NiksZz1uKDcyODIyKSxSPW4oMzMzMjcwKTtmdW5jdGlvbiBOKGUsdCl7dC5oYXMoUi51WSkmJnQuZGVsZXRlKFIudVkpLCgwLGcuWSkodCksdC5zZXQoIlgtT1dBLUF0dGVtcHQiLCIiK2UpfXZhciBVPW4oMjc5MDcxKSx5PW4oNzUwMTQyKSxLPW4oNTYzMTc1KTt2YXIgdz1uKDkzODgyMSksYj1uKDQ4NTk4NiksUD1uKDE4MDM4Nyksaz1uKDk1MTYzOCk7Y29uc3QgRT0yO2xldCBPPTA7Y29uc3QgVD17fTtmdW5jdGlvbiB4KGUpe2NvbnN0IHQ9TysrO3JldHVybiBUW3RdPWUsKCk9PntkZWxldGUgVFt0XX19ZnVuY3Rpb24gRChlLHQsbixyLG8pe2lmKG51bGw9PXI/dm9pZCAwOnIucGVyZkRhdGFwb2ludCl7Y29uc3QgaT1yLnBlcmZEYXRhcG9pbnQ7aWYoaS5kYXRhcG9pbnR8fGkuY3VzdG9tRGF0YXBvaW50fHxpLndlYldvcmtlckRhdGFwb2ludHx8aS5jdXN0b21XZWJXb3JrZXJEYXRhcG9pbnQpe2NvbnN0IGE9e2Rpc2NhcmRJZkRlZmluZWQ6aS5kaXNjYXJkSWZEZWZpbmVkfHwhMX07cmV0dXJuKDAsay5jSikoe2RhdGFwb2ludDppLmRhdGFwb2ludCxjdXN0b21EYXRhcG9pbnQ6aS5jdXN0b21EYXRhcG9pbnQsd2ViV29ya2VyRGF0YXBvaW50Omkud2ViV29ya2VyRGF0YXBvaW50LGN1c3RvbVdlYldvcmtlckRhdGFwb2ludDppLmN1c3RvbVdlYldvcmtlckRhdGFwb2ludH0sYSxNLGUsdCxuLHIsbyl9fXJldHVybiBNKGUsdCxuLHIsbyl9YXN5bmMgZnVuY3Rpb24gTShlLHQsbixpLHMpe3ZhciBjLHUsbCxILGYsUztjb25zdCBwPWFzeW5jIGZ1bmN0aW9uKGUsdCxuKXtjb25zdCByPSgwLG8uaUUpKCk7aWYoci5wcmVwYXJlUmVxdWVzdE9wdGlvbnMpe2NvbnN0IHQ9ci5wcmVwYXJlUmVxdWVzdE9wdGlvbnMoZSk7dCYmKGU9dC50aGVuP2F3YWl0IHQ6dCl9Y29uc3QgaT1hd2FpdCgwLHkuWikoZSkscz1pLmhlYWRlcnM7aWYobiYmcy5zZXQoIkFjdGlvbiIsbikscy5zZXQoIlgtT1dBLUNvcnJlbGF0aW9uSWQiLCgwLEsuWikoKSkscy5zZXQoIlgtT1dBLVNlc3Npb25JZCIsKDAsYS5NUSkoKSksci5pc0ZlYXR1cmVFbmFibGVkKCJhdXRoLXByb3ZlbmFuY2UtT3dzQWRkSGVhZGVyIikmJnMuc2V0KCJYLU9XQS1Qcm92ZW5hbmNlSWQiLCgwLEsuWikoKSksdCl7cy5hcHBlbmQoIkNvbnRlbnQtVHlwZSIsImFwcGxpY2F0aW9uL2pzb247IGNoYXJzZXQ9dXRmLTgiKTtjb25zdCBlPUpTT04uc3RyaW5naWZ5KHQpLG49ZW5jb2RlVVJJQ29tcG9uZW50KGUpO2kubm9FbXB0eVBvc3R8fG4ubGVuZ3RoPjIwNDg/aS5ib2R5PWU6KHMuYXBwZW5kKCJYLU9XQS1VcmxQb3N0RGF0YSIsbiksaS5ib2R5PXZvaWQgMCl9aWYoIXMuaGFzKFIudVkpKXtjb25zdCBlPSgwLFIuJEYpKCk7ZSYmcy5hcHBlbmQoUi51WSxlKX1yZXR1cm4gaX0oaSxzLGUpLEM9dCsiJm49IisoMCxVLlopKCksdj0oMCxyLlopKEMscCk7bGV0IG09ZTsiVXBkYXRlSXRlbSI9PWUmJihtPWUrKG51bGw9PShTPW51bGw9PShmPW51bGw9PShIPW51bGw9PShsPW51bGw9PSh1PW51bGw9PShjPW51bGw9PXM/dm9pZCAwOnMuQm9keSk/dm9pZCAwOmMuSXRlbUNoYW5nZXMpP3ZvaWQgMDp1WzBdKT92b2lkIDA6bC5VcGRhdGVzKT92b2lkIDA6SFswXSk/dm9pZCAwOmYuUGF0aCk/dm9pZCAwOlMuRmllbGRVUkkpfHwiIik7Zm9yKGNvbnN0IGUgb2YgT2JqZWN0LnZhbHVlcyhUKSllKHYsbSxDLG4scCk7cmV0dXJuIHAudGhlbigocj0+e2NvbnN0IGE9bmV3IEVycm9yKGUrIlJlcXVlc3RGYWlsZWQiKS5zdGFjayx7cmV0cnlDb3VudDpjPUV9PXI7cmV0dXJuIHYudGhlbigoYXN5bmMgZnVuY3Rpb24odSl7dmFyIGwsSDtsZXQgZj0hMSxTPXQ7aWYoKCEwPT09YXdhaXQobnVsbD09KGw9bnVsbD09cj92b2lkIDA6ci5zaG91bGRSZXRyeSk/dm9pZCAwOmwuY2FsbChyLHUuc3RhdHVzKSl8fCgwLEkuWikodS5zdGF0dXMpKSYmbjxjKWlmKG51bGw9PXI/dm9pZCAwOnIub25CZWZvcmVSZXRyeSl7Y29uc3QgZT1hd2FpdCByLm9uQmVmb3JlUmV0cnkodSk7ZSYmKGY9ITAsZS5kZWxheSYmYXdhaXQoMCxQLlopKGUuZGVsYXkpLGUuZW5kcG9pbnQmJihTPWUuZW5kcG9pbnQpKX1lbHNlIGY9ITA7aWYoZil7aWYoKDAsdy5aKSh1LnN0YXR1cykmJiEoMCxkLlopKGkpKXtjb25zdCBlPSgwLG8uaUUpKCk7KDAsQS5aKShlLCJBY2N0LUZldGNoV2l0aFJldHJ5VjJNYWlsYm94SW5mbyIsbnVsbD09aT92b2lkIDA6aS5tYWlsYm94SW5mbyksbnVsbD09KEg9ZS5vbkF1dGhGYWlsZWQpfHxILmNhbGwoZSx1LmhlYWRlcnMsbnVsbD09aT92b2lkIDA6aS5tYWlsYm94SW5mbyk7Y29uc3QgdD1hd2FpdCBlLmdldEF1dGhUb2tlbih1LmhlYWRlcnMsbnVsbD09aT92b2lkIDA6aS5tYWlsYm94SW5mbyk7aWYodCl7aWYoci5oZWFkZXJzLnNldChiLm5DLHQpLGUuZ2V0V2ViU2Vzc2lvblR5cGUpe2NvbnN0IHQ9YXdhaXQgZS5nZXRXZWJTZXNzaW9uVHlwZSgpO3QmJnIuaGVhZGVycy5zZXQoYi5jSSx0KX19ZWxzZSByLmhlYWRlcnMuaGFzKGIubkMpJiZyLmhlYWRlcnMuZGVsZXRlKGIubkMpfXJldHVybiBOKCsrbixyLmhlYWRlcnMpLEQoZSxTLG4scixzKX1yZXR1cm4gaChlLHUscixhKX0pLChmdW5jdGlvbihvKXtpZihvLnJldHJpYWJsZSYmbjxjKXJldHVybiBuZXcgUHJvbWlzZSgoKG8saSk9PntzZXRUaW1lb3V0KChhc3luYygpPT57dHJ5e04oKytuLHIuaGVhZGVycyksbyhhd2FpdCBEKGUsdCxuLHIscykpfWNhdGNoKHQpe2NvbnN0IG49dDtpZihuLm1lc3NhZ2UpdHJ5e09iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJtZXNzYWdlIix7dmFsdWU6ZSsiOiIrbi5tZXNzYWdlfSl9Y2F0Y2goZSl7fWkobil9fSksNWUzKX0pKTt0aHJvdyBvLm5ldHdvcmtFcnJvcj0hMCxvfSkpfSkpfX0sNTYzMTc1OihlLHQsbik9PnsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcigpe3JldHVybiBvKCkrbygpKyItIitvKCkrIi0iK28oKSsiLSIrbygpKyItIitvKCkrbygpK28oKX1mdW5jdGlvbiBvKCl7cmV0dXJuIE1hdGguZmxvb3IoNjU1MzYqKDErTWF0aC5yYW5kb20oKSkpLnRvU3RyaW5nKDE2KS5zdWJzdHJpbmcoMSl9bi5kKHQse1o6KCk9PnJ9KX0sMjc5MDcxOihlLHQsbik9PnsidXNlIHN0cmljdCI7bi5kKHQse1o6KCk9Pm99KTtsZXQgcj0wO2Z1bmN0aW9uIG8oKXtyZXR1cm4gcisrfX0sNDg1Mjc3OihlLHQsbik9PnsidXNlIHN0cmljdCI7bi5kKHQse286KCk9Pml9KTt2YXIgcj1uKDExNzA0Nyksbz1uKDQ5Mjk4Mik7ZnVuY3Rpb24gaShlKXtpZigoMCxvLlNuKSgpKXtjb25zdCB0PSgwLHIueSkoKS5sb2NhdGlvbi5vcmlnaW47ZT0ic3RyaW5nIj09dHlwZW9mIGU/bmV3IFVSTChlLHQpLnRvU3RyaW5nKCk6ey4uLmUsdXJsOm5ldyBVUkwoZS51cmwsdCkudG9TdHJpbmcoKX19cmV0dXJuIGV9fSw5NzAxMTE6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiByKGUpe3JldHVybihudWxsPT1lP3ZvaWQgMDplLmhlYWRlcnMpJiZudWxsIT1lLmhlYWRlcnMuZ2V0KCJYLU9XQS1FeHBsaWNpdExvZ29uVXNlciIpfW4uZCh0LHtaOigpPT5yfSl9LDkzODgyMTooZSx0LG4pPT57InVzZSBzdHJpY3QiO24uZCh0LHtaOigpPT5vfSk7dmFyIHI9big4ODUxODkpO2Z1bmN0aW9uIG8oZSl7cmV0dXJuISEoMCxyLmlFKSgpLmdldEF1dGhUb2tlbiYmKDQwMT09ZXx8NDQwPT1lKX19LDY3ODc2OihlLHQsbik9PnsidXNlIHN0cmljdCI7bi5kKHQse1o6KCk9Pm99KTt2YXIgcj1uKDkzODgyMSk7ZnVuY3Rpb24gbyhlKXtyZXR1cm4gNDQ5PT1lfHw0MDg9PWV8fDUwMj09ZXx8ZTwxMDB8fGU+NTk5fHwoMCxyLlopKGUpfX0sMjgzMzExOihlLHQsbik9PnsidXNlIHN0cmljdCI7bi5kKHQse1o6KCk9Pm99KTt2YXIgcj1uKDg2OTQxNyk7ZnVuY3Rpb24gbyhlLHQpe3ZhciBuO3JldHVybiB2b2lkIDA9PT1lfHxlLl9fdHlwZXx8KG49ZSxlPXtfX3R5cGU6IkF1dGhlbnRpY2F0aW9uVXJsUmVxdWVzdDojRXhjaGFuZ2UiLC4uLm59KSwoMCxyLlMpKCJHZXRBdXRoZW50aWNhdGlvblVybCIsZSx0KX19LDcyODIyOihlLHQsbik9PnsidXNlIHN0cmljdCI7bi5kKHQse046KCk9PmEsWTooKT0+aX0pO3ZhciByPW4oNzY0MDUwKSxvPW4oNDkyOTgyKTtmdW5jdGlvbiBpKGUpe2NvbnN0IHQ9YSgpO09iamVjdC5rZXlzKHQpLmZvckVhY2goKG49PntlLnNldChuLHRbbl0pfSkpfWZ1bmN0aW9uIGEoKXtjb25zdCBlPSgwLG8uZWopKCJ0YXJnZXRTZXJ2ZXIiKSx0PXsiWC1PV0EtQ0FOQVJZIjooMCxyLk56KShlKX0sbj0oMCxyLlhMKShlKTtyZXR1cm4gbiYmKHRbIlgtT1dBLUNBTkFSWS1ERUJVRyJdPW4pLHR9fSw5ODE1NzE6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0IjtuLmQodCx7WjooKT0+aX0pO3ZhciByPW4oODg1MTg5KSxvPW4oNDg1Mjc3KTtmdW5jdGlvbiBpKGUsdCl7cmV0dXJuIHQudGhlbj90LnRoZW4oKHQ9PmEoZSx0KSkpOmEoZSx0KX1mdW5jdGlvbiBhKGUsdCl7ZT0oMCxvLm8pKGUpO2lmKCgwLHIuaUUpKCkuZGlzYWJsZUFsbFJlcXVlc3RzKXtjb25zdCB0PW5ldyBFcnJvcigiU2VydmljZSByZXF1ZXN0IGJsb2NrZWQgYmVjYXVzZSBkaXNhYmxlQWxsUmVxdWVzdHMgaXMgZW5hYmxlZC4iKTtyZXR1cm4gdC5kaWFnbm9zdGljSW5mbz1gVVJMOiAke2V9YCx0LmZldGNoRXJyb3JUeXBlPSJSZXF1ZXN0Tm90Q29tcGxldGUiLHQucmV0cmlhYmxlPSExLFByb21pc2UucmVqZWN0KHQpfXJldHVybiBuZXcgUHJvbWlzZSgoKG4sbyk9Pntjb25zdCBpPXQudGltZW91dE1TfHwoMCxyLmlFKSgpLnRpbWVvdXRNU3x8LTEsYT10O2xldCBzPTA7aWYoaT4wKXtsZXQgbjsiQWJvcnRDb250cm9sbGVyImluIHNlbGYmJihuPW5ldyBBYm9ydENvbnRyb2xsZXIsYS5zaWduYWw9bi5zaWduYWwpLHM9c2VsZi5zZXRUaW1lb3V0KCgoKT0+e2lmKG4pbi5hYm9ydCgpO2Vsc2V7Y29uc3Qgbj1uZXcgRXJyb3IoYFNlcnZpY2UgcmVxdWVzdCB3b3VsZCBoYXZlIHRpbWVkIG91dCBhZnRlciAke2l9bXMgaWYgQWJvcnRDb250cm9sbGVyIGlzIGF2YWlsYWJsZS5gKTtpZihuLmRpYWdub3N0aWNJbmZvPWBVUkw6ICR7ZX1gLG4uZmV0Y2hFcnJvclR5cGU9IlJlcXVlc3RUaW1lb3V0IiwhdC50aW1lb3V0TVMpdGhyb3cgbjtvKG4pfX0pLGkpfWZldGNoKGUsYSkudGhlbigoZT0+e3NlbGYuY2xlYXJUaW1lb3V0KHMpLG4oZSl9KSkuY2F0Y2goKHQ9Pntjb25zdCBuPXQ7bi5mZXRjaEVycm9yVHlwZT0iUmVxdWVzdE5vdENvbXBsZXRlIixuLnJldHJpYWJsZT0hMCwiQWJvcnRFcnJvciI9PT1uLm5hbWU/KE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJtZXNzYWdlIix7dmFsdWU6YFNlcnZpY2UgcmVxdWVzdCB0aW1lZCBvdXQgYWZ0ZXIgJHtpfW1zLiBVUkw6ICR7ZX1gfSksbi5mZXRjaEVycm9yVHlwZT0iUmVxdWVzdFRpbWVvdXQiKTpuLm1lc3NhZ2UmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJtZXNzYWdlIix7dmFsdWU6YCR7bi5tZXNzYWdlfS4gVVJMOiAke2V9YH0pLHNlbGYuY2xlYXJUaW1lb3V0KHMpLG8obil9KSl9KSl9fSw5ODEzOTM6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0IjtuLmQodCx7XzooKT0+byxpOigpPT5pfSk7dmFyIHI9big1MTg4MjApO2NvbnN0IG89InNkbXAiO2Z1bmN0aW9uIGkoKXt0cnl7Y29uc3QgZT0oMCxyLnJWKSh3aW5kb3csbyk7cmV0dXJuIGU/SlNPTi5wYXJzZShlKS5JbmJveFJlYWRpbmdQYW5lUG9zaXRpb246dm9pZCAwfWZpbmFsbHl7cmV0dXJufX19LDUzOTE2MTooZSx0LG4pPT57InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHIoZSx0LG4scil7Y29uc3QgaT13aW5kb3cuUmVzcG9uc2UmJmUgaW5zdGFuY2VvZiB3aW5kb3cuUmVzcG9uc2U/ZnVuY3Rpb24oZSl7Y29uc3QgdD1uZXcgRXJyb3IoIkJvb3RFcnJvckZyb21SZXNwb25zZSIpO3JldHVybiB0LnJlc3BvbnNlPWUsdH0oZSk6InN0cmluZyI9PXR5cGVvZiBlP25ldyBFcnJvcihlKTplO3JldHVybiBvKGksInNvdXJjZSIsdCksbyhpLCJ1cmwiLG4pLG8oaSwic3RhdHVzIixyKSxpfWZ1bmN0aW9uIG8oZSx0LG4pe3ZvaWQgMD09PWVbdF0mJihlW3RdPW4pfW4uZCh0LHtaOigpPT5yfSl9LDc2NzE6KCk9PnsidXNlIHN0cmljdCI7dHJ5e2lmKCJwZXJmb3JtYW5jZSJpbiB3aW5kb3c9PTEmJiJmdW5jdGlvbiIhPXR5cGVvZiB3aW5kb3cucGVyZm9ybWFuY2Uubm93KXt2YXIgZT1EYXRlLm5vdygpO3dpbmRvdy5wZXJmb3JtYW5jZS5ub3c9KCk9PkRhdGUubm93KCktZX19Y2F0Y2goZSl7ZSYmd2luZG93JiYiZnVuY3Rpb24iPT10eXBlb2Ygd2luZG93Lm9uZXJyb3ImJndpbmRvdy5vbmVycm9yKCJQb2x5ZmlsbCBlcnJvciIsdm9pZCAwLHZvaWQgMCx2b2lkIDAsZSl9fSw3NTgwNTc6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0IjtuLmQodCx7V0E6KCk9PnUsYVI6KCk9PmwsazM6KCk9PmQsbUw6KCk9PmEsbkQ6KCk9PnMsdUM6KCk9PmMsdWY6KCk9Pkh9KTt2YXIgcj1uKDUxODgyMCk7bGV0IG87ZnVuY3Rpb24gaSgpe2lmKCFvKXtjb25zdCBlPSgwLHIuclYpKHNlbGYsIkJvb3REaWFnbm9zdGljcyIpO2lmKGUpdHJ5e289SlNPTi5wYXJzZShlKX1jYXRjaChlKXtvPXt9fWVsc2Ugbz17fX1yZXR1cm4gb31mdW5jdGlvbiBhKGUpe3ZhciB0O2NvbnN0IG49bnVsbD09KHQ9ZS5vd2FVc2VyQ29uZmlnKT92b2lkIDA6dC5TZXNzaW9uU2V0dGluZ3M7cmV0dXJuIG4mJihvPXtwdWlkOm4uVXNlclB1aWQsdGlkOm4uRXh0ZXJuYWxEaXJlY3RvcnlUZW5hbnRHdWlkLG1ieDpuLk1haWxib3hHdWlkLHByZW06bi5Jc1ByZW1pdW1Db25zdW1lck1haWxib3g/IjEiOiIwIixpc0NvbjowIT1uLldlYlNlc3Npb25UeXBlLHVwbjpuLlVzZXJQcmluY2lwYWxOYW1lfSksb31mdW5jdGlvbiBzKCl7cmV0dXJuIGkoKS5wdWlkfWZ1bmN0aW9uIGMoKXtyZXR1cm4gaSgpLnRpZH1mdW5jdGlvbiB1KCl7cmV0dXJuIGkoKS5tYnh9ZnVuY3Rpb24gbCgpe3JldHVybiBpKCkucHJlbX1mdW5jdGlvbiBIKCl7cmV0dXJuIGkoKS5pc0Nvbn1mdW5jdGlvbiBkKCl7cmV0dXJuIGkoKS51cG59fSwxODAzODc6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiByKGUsdCxuKXtyZXR1cm4gbmV3IFByb21pc2UoKChyLG8pPT57c2V0VGltZW91dChuP286cixlLHQpfSkpfW4uZCh0LHtaOigpPT5yfSl9LDg4MzA5OTooZSx0LG4pPT57InVzZSBzdHJpY3QiO24uZCh0LHtVOigpPT5yLGk6KCk9PlN9KTt2YXIgcj17fTtuLnIociksbi5kKHIse3ZZOigpPT5pLGNnOigpPT5hLFNfOigpPT5vLExfOigpPT5zLHBXOigpPT5sLEpyOigpPT5jLE5GOigpPT51fSk7Y29uc3Qgbz0iYmFzZSIsaT1gJHtvfS5kYXJrYCxhPSJiYXNld2l0aG9mZmljZXRoZW1lcHJlZmVycmVkIixzPSJjb250cmFzdCIsYz0iVXNlcnNOb3JtYWxpemVkVGhlbWUiLHU9Im9mZmljZW5ldXRyYWwiLGw9W28saV07dmFyIEg9big0OTI5ODIpLGQ9bigyNjkzOTkpO2NvbnN0IGY9e307YXN5bmMgZnVuY3Rpb24gUyhlLHQpe2lmKGZ1bmN0aW9uKGUpe3JldHVybiBsLmluY2x1ZGVzKGUpfShlKSlyZXR1cm4gbnVsbDtsZXQgbj1mW2VdO3JldHVybiBufHwobj1mW2VdPShhc3luYygpPT57dHJ5e2NvbnN0IHQ9YXdhaXQgZmV0Y2goYCR7KDAsSC50OSkoKX1yZXNvdXJjZXMvdGhlbWUvZmFicmljLmNvbG9yLnZhcmlhYmxlcy50aGVtZS4ke2UudG9Mb3dlckNhc2UoKX0uanNvbmApO3JldHVybiBhd2FpdCB0Lmpzb24oKX1jYXRjaChlKXtyZXR1cm4gbnVsbH19KSgpLCgwLGQueUkpKCJ0bV9zIix0fHwibi9hIikpLG59fSw2OTI1MDI6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0IjtuLmQodCx7WjooKT0+b30pO3ZhciByPShlPT4oZVtlLk5vbmU9MF09Ik5vbmUiLGVbZS5FcnJvcj0xXT0iRXJyb3IiLGVbZS5EZWJ1Z0Vycm9yPTJdPSJEZWJ1Z0Vycm9yIixlW2UuV2FybmluZz0zXT0iV2FybmluZyIsZVtlLkluZm89NF09IkluZm8iLGVbZS5WZXJib3NlPTVdPSJWZXJib3NlIixlKSkocnx8e30pO2NvbnN0IG89cn0sNDIyODY2OihlLHQsbik9PnsidXNlIHN0cmljdCI7bi5kKHQse2ZuOigpPT5vLEd1OigpPT5hLlosWlU6KCk9PnIuWlUscng6KCk9PnIucngsaFo6KCk9PnIuaFosZ3Y6KCk9PmksU1U6KCk9PnIuU1UsZzQ6KCk9PnIuWlB9KTt2YXIgcj1uKDY0MjY5KTtjb25zdCBvPSJbZW1wdHkgb25lcnJvcl0iO2Z1bmN0aW9uIGkoZSx0LG4saSxhLHMpe2lmKGV8fGEpe2lmKGF8fCgoYT1uZXcgRXJyb3IoZSkpLnN0YWNrPXN8fG8pLC0xIT0oZT1lfHxhLm1lc3NhZ2UpLmluZGV4T2YoJyJyZXNwb25zZVRleHQiOiI8IURPQ1RZUEUnKSl7Y29uc3QgdD1lLnRvTG9jYWxlTG93ZXJDYXNlKCkuaW5kZXhPZigiPCFkb2N0eXBlIGh0bWwiKSxuPWUuc3Vic3RyaW5nKHQpLHI9LTEhPT1uLnRvTG9jYWxlTG93ZXJDYXNlKCkuaW5kZXhPZigiPC9odG1sPlxyXG4iKT9uLnRvTG9jYWxlTG93ZXJDYXNlKCkuaW5kZXhPZigiPC9odG1sPlxyXG4iKSs5Om4udG9Mb2NhbGVMb3dlckNhc2UoKS5pbmRleE9mKCI8L2h0bWw+IikrNzstMSE9PXQmJi0xIT09ciYmKGU9ZS5zdWJzdHJpbmcoMCx0KSsiUmVwbGFjZWRHZW5lcmljSFRNTEVycm9yTWVzc2FnZSIrZS5zdWJzdHJpbmcodCtyKSl9aWYoT2JqZWN0LmlzRXh0ZW5zaWJsZShhKSl0cnl7dCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsImZpbGVuYW1lIix7dmFsdWU6dH0pLCJudW1iZXIiPT10eXBlb2YgbiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsImxpbmVubyIse3ZhbHVlOm59KSwibnVtYmVyIj09dHlwZW9mIGkmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLCJjb2xubyIse3ZhbHVlOml9KX1jYXRjaChlKXt9KG51bGw9PWE/dm9pZCAwOmEucmVwb3J0ZWQpfHwoMCxyLnJ4KShlLGEpfX12YXIgYT1uKDY5MjUwMil9LDY0MjY5OihlLHQsbik9PnsidXNlIHN0cmljdCI7bi5kKHQse1NVOigpPT5jLFpQOigpPT5DLFpVOigpPT5ILGhaOigpPT5mLHJ4OigpPT5kfSk7dmFyIHI9big2OTI1MDIpLG89big0NTE5MzYpO2NvbnN0IGk9W107bGV0IGE9W107Y29uc3Qgcz17R2xvYmFsQW5hbHl0aWNzOntyZXF1aXJlZDohMCxyZWdpc3RlcmVkOiExfSxEZXZUb29sczp7cmVxdWlyZWQ6ITAscmVnaXN0ZXJlZDohMX0sVUlFeGNlcHRpb25IYW5kbGVyOntyZXF1aXJlZDohMCxyZWdpc3RlcmVkOiExfSxQZW9wbGVCb290c3RyYXA6e3JlcXVpcmVkOiExLHJlZ2lzdGVyZWQ6ITF9LFRlc3RzOntyZXF1aXJlZDohMSxyZWdpc3RlcmVkOiExfX07ZnVuY3Rpb24gYyhlLHQpe3ZhciBuO2lmKChudWxsPT0obj1zW2VdKT92b2lkIDA6bi5yZXF1aXJlZCkmJiFzW2VdLnJlZ2lzdGVyZWQpe2woYFtUcmFjZV0gUHJvY2Vzc2luZyBib290IGNhY2hlIGZvciAke2V9LiBDYWNoZSBzaXplOiAke2EubGVuZ3RofWAsImFuYWx5dGljcyIpO2Zvcihjb25zdCBlIG9mIGEpdCguLi5lKTtzW2VdLnJlZ2lzdGVyZWQ9ITB9aS5wdXNoKHQpLHAoKXx8KGE9W10sbCgiW1RyYWNlXSBDbGVhcmVkIGJvb3QgY2FjaGUiLCJhbmFseXRpY3MiKSl9ZnVuY3Rpb24gdShlLHQsbixyKXtwKCkmJmEucHVzaChbZSx0LG4scl0pLGkuZm9yRWFjaCgobz0+e28oZSx0LG4scil9KSl9ZnVuY3Rpb24gbChlLHQpe3UoZSxyLlouSW5mbyx0KX1mdW5jdGlvbiBIKGUsdCxuKXtTKHIuWi5EZWJ1Z0Vycm9yLGUsdCxuKX1mdW5jdGlvbiBkKGUsdCxuKXtTKHIuWi5FcnJvcixlLHQsbil9ZnVuY3Rpb24gZihlLHQsbil7aWYoZChlLHQsbiksInN0cmluZyI9PXR5cGVvZiBlKXRocm93IG5ldyBFcnJvcihlKTt0aHJvdyBlfHxuZXcgRXJyb3IoIlVua25vd25FcnJvciIpfWZ1bmN0aW9uIFMoZSx0LG4scil7dmFyIGk7bGV0IGEsczsic3RyaW5nIj09dHlwZW9mIHQ/KHM9dCxhPSgwLG8uVykobil8fG5ldyBFcnJvcih0KSk6KGE9KDAsby5XKSh0KXx8dHx8bmV3IEVycm9yKCJVbmtub3duRXJyb3IiKSxzPWEubWVzc2FnZSksKG51bGw9PShpPWEuZXJyb3IpP3ZvaWQgMDppLm1lc3NhZ2UpJiZhLmVycm9yLnN0YWNrJiYocz1hLmVycm9yLm1lc3NhZ2UsYS5zdGFjaz1hLmVycm9yLnN0YWNrLGEubmFtZT1hLmVycm9yLm5hbWUpLGEuY29tcG9uZW50P3M9IkNPTVBPTkVOVCBFUlJPUjogIithLm1lc3NhZ2U6YS5zY3JpcHRFdmFsJiYocz0iRVZBTCBFUlJPUjogIithLm1lc3NhZ2UpLHUoc3x8IiIsZSxyLGEpfWZ1bmN0aW9uIHAoKXtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIFdvcmtlckdsb2JhbFNjb3BlJiZzZWxmIGluc3RhbmNlb2YgV29ya2VyR2xvYmFsU2NvcGU/IXMuRGV2VG9vbHMucmVnaXN0ZXJlZDpPYmplY3QudmFsdWVzKHMpLmZpbHRlcigoZT0+ZS5yZXF1aXJlZCkpLnNvbWUoKGU9PiFlLnJlZ2lzdGVyZWQpKX1jb25zdCBDPXtpbmZvOmwsd2FybjpmdW5jdGlvbihlLHQpe3UoZSxyLlouV2FybmluZyx0KX0sdmVyYm9zZTpmdW5jdGlvbihlLHQpe3UoZSxyLlouVmVyYm9zZSx0KX19fSw0NTE5MzY6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiByKGUpe2lmKCFlKXJldHVybjtjb25zdCB0PVsiR3JhcGhxbFNlcnZlckVycm9yIl0sbj1bIkdyYXBocWxOZXR3b3JrRXJyb3IiXSxyPWZ1bmN0aW9uKGUpe3ZhciB0O2lmKGUuZ3JhcGhRTEVycm9ycylmb3IoY29uc3QgdCBvZiBlLmdyYXBoUUxFcnJvcnMpaWYodC5leHRlbnNpb25zJiZPYmplY3Qua2V5cyh0LmV4dGVuc2lvbnMpLmxlbmd0aD4wKXJldHVybiB0O3JldHVybiBudWxsPT0odD1lLmdyYXBoUUxFcnJvcnMpP3ZvaWQgMDp0WzBdfShlKTtyZXR1cm4gcj8oci5leHRlbnNpb25zJiZPYmplY3Qua2V5cyhyLmV4dGVuc2lvbnMpLmZvckVhY2goKGU9PntpZihudWxsIT1yLmV4dGVuc2lvbnNbZV0mJihyW2VdPXIuZXh0ZW5zaW9uc1tlXSksImNvZGUiPT1lKXtjb25zdCBvPXIuZXh0ZW5zaW9uc1tlXTtvJiYodC5pbmRleE9mKG8pPi0xJiYoci5mZXRjaEVycm9yVHlwZT0iU2VydmVyRmFpbHVyZSIpLG4uaW5kZXhPZihvKT4tMSYmKHIuZmV0Y2hFcnJvclR5cGU9IlJlcXVlc3ROb3RDb21wbGV0ZSIpKX19KSkscik6ZX1uLmQodCx7VzooKT0+cn0pfSwyNjA1NTY6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0IjtuLmQodCx7WjooKT0+aX0pO3ZhciByPW4oNTc1MTEzKSxvPW4oNjg0NDE1KTtmdW5jdGlvbiBpKCl7dmFyIGU7Y29uc3QgdD1udWxsPT0oZT0oMCxyLkkpKCkpP3ZvaWQgMDplLnBhdGhuYW1lO2lmKHQpe2NvbnN0IGU9dC5zcGxpdCgiLyIpLmZpbHRlcigoZT0+ISFlKSk7cmV0dXJuKDAsby5aKSgpP2VbMV0/ZVsxXS50b0xvd2VyQ2FzZSgpOm51bGw6ZVswXT9lWzBdLnRvTG93ZXJDYXNlKCk6bnVsbH1yZXR1cm4gbnVsbH19LDM2Njk1MzooZSx0LG4pPT57InVzZSBzdHJpY3QiO24uZCh0LHtaOigpPT5vfSk7dmFyIHI9big3OTE0NSk7ZnVuY3Rpb24gbyhlKXtyZXR1cm4oMCxyLkUpKGUsW3IubGcsci5jd10pfX0sNTg4Mzk5OihlLHQsbik9PnsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcihlLHQsbil7dD10fHx7fTtjb25zdCByPW4/T2JqZWN0LmtleXModCkuZmlsdGVyKCh0PT5lLmluZGV4T2YoYCYke3R9PWApPDAmJmUuaW5kZXhPZihgPyR7dH09YCk8MCkpOk9iamVjdC5rZXlzKHQpO2lmKDA9PXIubGVuZ3RoKXJldHVybiBlO2NvbnN0IG89LTEhPT1lLmluZGV4T2YoIj8iKTtlKz1vPyImIjoiPyI7Y29uc3QgaT1yLm1hcCgoZT0+YCR7ZW5jb2RlVVJJQ29tcG9uZW50KGUpfT0ke2VuY29kZVVSSUNvbXBvbmVudCh0W2VdKX1gKSkuam9pbigiJiIpO3JldHVybiBlK2l9bi5kKHQse1o6KCk9PnJ9KX0sNTc1MTEzOihlLHQsbik9PnsidXNlIHN0cmljdCI7bi5kKHQse0k6KCk9Pm99KTt2YXIgcj1uKDExNzA0Nyk7ZnVuY3Rpb24gbygpe3JldHVybigwLHIueSkoKS5sb2NhdGlvbn19LDc5MTQ1OihlLHQsbik9PnsidXNlIHN0cmljdCI7bi5kKHQse0U6KCk9PmMsY3c6KCk9PnMsbGc6KCk9PmF9KTt2YXIgcj1uKDcyNjg1Myksbz1uKDU3NTExMyksaT1uKDI2MDU1Nik7Y29uc3QgYT1lPT4xPT1lLmxlbmd0aCYmIWlzTmFOKHBhcnNlSW50KGUpKSxzPWU9PiEhZS5tYXRjaCgvLitALisvKTtmdW5jdGlvbiBjKGUsdCl7dmFyIG47bGV0IGE9ZTtjb25zdCBzPW51bGw9PShuPSgwLG8uSSkoKSk/dm9pZCAwOm4ucGF0aG5hbWU7aWYocyl7Y29uc3QgZT1zLnNwbGl0KCIvIisoMCxpLlopKCkrIi8iKVsxXTtpZihlKXtjb25zdCBuPWUuc3BsaXQoIi8iKVswXTtuJiZ0LmZpbHRlcigoZT0+ZShuKSkpLmxlbmd0aD4wJiYoYT0oMCxyLlpQKShhLG4pKX19cmV0dXJuKDAsci5lNykoYSl9fSw2OTk3NjY6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0IjtuLmQodCx7SzooKT0+aSxaOigpPT5vfSk7bGV0IHI9ITE7ZnVuY3Rpb24gbygpe3JldHVybiByfWZ1bmN0aW9uIGkoZSl7cj1lfX0sNjg0NDE1OihlLHQsbik9PnsidXNlIHN0cmljdCI7bi5kKHQse1o6KCk9Pm99KTt2YXIgcj1uKDU3NTExMyk7ZnVuY3Rpb24gbygpe3ZhciBlO2NvbnN0IHQ9bnVsbD09KGU9KDAsci5JKSgpKT92b2lkIDA6ZS5wYXRobmFtZTtpZih0KXtjb25zdCBlPXQuc3BsaXQoIi8iKS5maWx0ZXIoKGU9PiEhZSkpO3JldHVybiEhZVswXSYmImhvc3RlZCI9PT1lWzBdLnRvTG93ZXJDYXNlKCl9cmV0dXJuITF9fSw3MjY4NTM6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiByKC4uLmUpe3JldHVybiBlLmZpbHRlcigoZT0+ZSkpLm1hcChhKS5maWx0ZXIoKGU9PjAhPT1lLmxlbmd0aCkpLmpvaW4oIi8iKX1mdW5jdGlvbiBvKGUpe3JldHVybiBlP2UubGVuZ3RoPjAmJiIvIiE9PWVbMF0/Ii8iK2U6ZToiLyJ9ZnVuY3Rpb24gaShlKXtyZXR1cm4gZS5sZW5ndGg+MCYmIi8iIT09ZVtlLmxlbmd0aC0xXT9lKyIvIjplfWZ1bmN0aW9uIGEoZSl7cmV0dXJuIGUucmVwbGFjZSgvXlwvKi8sIiIpLnJlcGxhY2UoL1wvKiQvLCIiKX1uLmQodCx7WlA6KCk9PnIsZTc6KCk9Pm8seHM6KCk9Pml9KX0sNjI4ODQxOihlLHQsbik9PnsidXNlIHN0cmljdCI7bi5kKHQse1M3OigpPT5vLlpQLGE2OigpPT5jLmEsa0E6KCk9Pmkua0EsR0c6KCk9PmEsUnI6KCk9PmkuUnIsZ3M6KCk9PmkuZ3MsT1k6KCk9PnIuT1kseXA6KCk9PnIueXAsbmI6KCk9PnIubmIsbzI6KCk9PnIubzIsRmk6KCk9PnIuRmksRm86KCk9PnIuRm8sJFY6KCk9PnIuJFYsTDooKT0+ci5MLFY1OigpPT5yLlY1LEpzOigpPT5zLHJEOigpPT5yLnJELEVEOigpPT5yLkVEfSk7dmFyIHI9big5NDA4MTcpLG89big1MzA4MjMpLGk9bigxMjU2MTkpO2FzeW5jIGZ1bmN0aW9uIGEoKXtjb25zdCBlPWF3YWl0KDAsaS5ScikoKTtsZXQgdD0iIjtyZXR1cm4gdD0iV2luZG93cyI9PWUub3M/IjExIj09ZS5vc1ZlcnNpb24/IldpbmRvd3MgMTEgb3IgbGF0ZXIiOiIxMCI9PWUub3NWZXJzaW9uPyJXaW5kb3dzIDEwIjoiQmVmb3JlIFdpbmRvd3MgMTAiOiJOb3QgcnVubmluZyBvbiBXaW5kb3dzIix0fWZ1bmN0aW9uIHMoZSl7Y29uc3R7YnJvd3NlclZlcnNpb246dH09KDAsby5aUCkoKTtpZihlLmxlbmd0aD50Lmxlbmd0aClyZXR1cm4hMTtmb3IobGV0IG49MDtuPGUubGVuZ3RoO24rKylpZih0W25dIT09ZVtuXSlyZXR1cm4gdFtuXT5lW25dO3JldHVybiEwfXZhciBjPW4oOTYyNTE1KX0sOTQwODE3OihlLHQsbik9PnsidXNlIHN0cmljdCI7bi5kKHQseyRWOigpPT5jLEVEOigpPT5hLEZpOigpPT5wLEZvOigpPT5TLEw6KCk9PmwsT1k6KCk9PnUsVjU6KCk9PmksbmI6KCk9PmYsbzI6KCk9PmQsckQ6KCk9PnMseXA6KCk9Pkh9KTt2YXIgcj1uKDUzMDgyMyksbz1uKDEyNTYxOSk7ZnVuY3Rpb24gaSgpe3JldHVybiJNYWMgT1MgWCI9PSgwLG8ua0EpKCl9ZnVuY3Rpb24gYSgpe3JldHVybiJXaW5kb3dzIj09PSgwLG8ua0EpKCl9YXN5bmMgZnVuY3Rpb24gcygpe2NvbnN0IGU9YXdhaXQoMCxvLlJyKSgpO3JldHVybiJXaW5kb3dzIj09PWUub3MmJiIxMSI9PT1lLm9zVmVyc2lvbn1mdW5jdGlvbiBjKCl7cmV0dXJuIkNocm9taXVtIE9TIj09KDAsby5rQSkoKX1mdW5jdGlvbiB1KCl7cmV0dXJuIkFuZHJvaWQiPT0oMCxvLmtBKSgpfWZ1bmN0aW9uIGwoKXtyZXR1cm4iaU9TIj09KDAsby5rQSkoKX1mdW5jdGlvbiBIKCl7cmV0dXJuIkNocm9tZSI9PT0oMCxyLlpQKSgpLmJyb3dzZXJ9ZnVuY3Rpb24gZCgpe3JldHVybiJGaXJlZm94Ij09PSgwLHIuWlApKCkuYnJvd3Nlcn1mdW5jdGlvbiBmKCl7cmV0dXJuIkVkZ2UgQW5haGVpbSI9PT0oMCxyLlpQKSgpLmJyb3dzZXJ9ZnVuY3Rpb24gUygpe3JldHVybiJTYWZhcmkiPT09KDAsci5aUCkoKS5icm93c2VyfWZ1bmN0aW9uIHAoKXtyZXR1cm4iT3BlcmEiPT09KDAsci5aUCkoKS5icm93c2VyfX0sNTMwODIzOihlLHQsbik9PnsidXNlIHN0cmljdCI7bi5kKHQse1pQOigpPT5pfSk7dmFyIHI9bigxNTE4OTUpO2xldCBvO2Z1bmN0aW9uIGkoKXtyZXR1cm4gb3x8KG89ZnVuY3Rpb24oKXt2YXIgZSx0O2xldCBuLG89IlVua25vd24iO2NvbnN0IGk9KDAsci5aKSgpOy9PUFJcLy8udGVzdChpKT8obz0iT3BlcmEiLG49YShpLCJPUFIiKSk6L1BoYW50b21KUy8udGVzdChpKT9vPSJQaGFudG9tSlMiOi9FZGdlLy50ZXN0KGkpP289IkVkZ2UiOi9FZGcvLnRlc3QoaSl8fCJ1bmRlZmluZWQiIT10eXBlb2YgbmF2aWdhdG9yJiYobnVsbD09KHQ9bnVsbD09KGU9bnVsbD09bmF2aWdhdG9yP3ZvaWQgMDpuYXZpZ2F0b3IudXNlckFnZW50RGF0YSk/dm9pZCAwOmUuYnJhbmRzKT92b2lkIDA6dC5zb21lKChlPT4iTWljcm9zb2Z0IEVkZ2UiPT0obnVsbD09ZT92b2lkIDA6ZS5icmFuZCkpKSk/KG89IkVkZ2UgQW5haGVpbSIsbj1hKGksIkVkZyIpKTovRWxlY3Ryb24vLnRlc3QoaSk/bz0iRWxlY3Ryb24iOi9DaHJvbWUvLnRlc3QoaSl8fC9DcmlPUy8udGVzdChpKT9vPSJDaHJvbWUiOi9UcmlkZW50Ly50ZXN0KGkpPyhvPSJNU0lFIixuPWZ1bmN0aW9uKGUpe2xldCB0PWUubWF0Y2goL01TSUUgKFtcZCxcLl0rKS8pO2lmKHQpcmV0dXJuIHModFsxXSk7cmV0dXJuIHQ9ZS5tYXRjaCgvcnY6KFtcZCxcLl0rKS8pLHQ/cyh0WzFdKTpbXX0oaSkpOi9GaXJlZm94Ly50ZXN0KGkpP289IkZpcmVmb3giOi9TYWZhcmkvLnRlc3QoaSl8fC9BcHBsZVdlYktpdC8udGVzdChpKT8obz0iU2FmYXJpIixuPWEoaSwiVmVyc2lvbiIpKTovU2t5cGVTaGVsbC8udGVzdChpKSYmKG89IlNreXBlU2hlbGwiKTtyZXR1cm57YnJvd3NlcjpvLGJyb3dzZXJWZXJzaW9uOm58fGEoaSxvKX19KCkpLG99ZnVuY3Rpb24gYShlLHQpe2NvbnN0IG49ZS5tYXRjaChuZXcgUmVnRXhwKHQrIi8oW1xcZCxcXC5dKykiKSk7cmV0dXJuIG4/cyhuWzFdKTpbXX1mdW5jdGlvbiBzKGUpe3JldHVybiBlLnNwbGl0KC9bXC4sXS8pLm1hcCgoZT0+cGFyc2VJbnQoZSkpKX19LDk2MjUxNTooZSx0LG4pPT57InVzZSBzdHJpY3QiO24uZCh0LHthOigpPT5hfSk7Y29uc3Qgcj17YXJjaGl0ZWN0dXJlOjEsYml0bmVzczoxLHBsYXRmb3JtVmVyc2lvbjoxLG1vZGVsOjF9O2xldCBvPW51bGwsaT0hMDthc3luYyBmdW5jdGlvbiBhKCl7dmFyIGU7aWYoaSYmKGk9ITEsbnVsbD09KGU9c2VsZi5uYXZpZ2F0b3IudXNlckFnZW50RGF0YSk/dm9pZCAwOmUuZ2V0SGlnaEVudHJvcHlWYWx1ZXMpKXRyeXtvPWF3YWl0IHNlbGYubmF2aWdhdG9yLnVzZXJBZ2VudERhdGEuZ2V0SGlnaEVudHJvcHlWYWx1ZXMoT2JqZWN0LmtleXMocikpfWNhdGNoKGUpe31yZXR1cm4gb319LDEyNTYxOTooZSx0LG4pPT57InVzZSBzdHJpY3QiO24uZCh0LHtScjooKT0+bCxnczooKT0+YyxrQTooKT0+dX0pO3ZhciByPW4oMTUxODk1KSxvPW4oOTYyNTE1KTtjb25zdCBpPXs1LjE6IlhQIiwiNi4wIjoiVmlzdGEiLDYuMToiNyIsNi4yOiI4Iiw2LjM6IjguMSIsNi40OiIxMCIsIjEwLjAiOiIxMCJ9O2xldCBhLHM7ZnVuY3Rpb24gYygpe3JldHVybiBhfHwoYT1mdW5jdGlvbigpe2xldCBlLHQ7Y29uc3Qgbj0oMCxyLlopKCk7Lyhjcm9zKVxzW1x3XStccyhbXHdcLl0rXHcpL2kudGVzdChuKT9lPSJDaHJvbWl1bSBPUyI6LyhpUGFkfGlQaG9uZXxpUG9kKSg/PS4qbGlrZSBNYWMgT1MgWCkvaS50ZXN0KG4pP2U9ImlPUyI6L2FuZHJvaWQvaS50ZXN0KG4pP2U9IkFuZHJvaWQiOi8obGludXh8am9saXxba3hsbl0/dWJ1bnR1fGRlYmlhbnxbb3Blbl0qc3VzZXxnZW50b298YXJjaHxzbGFja3dhcmV8ZmVkb3JhfG1hbmRyaXZhfGNlbnRvc3xwY2xpbnV4b3N8cmVkaGF0fHplbndhbGspL2kudGVzdChuKT9lPSJMaW51eCI6LyhtYWNpbnRvc2h8bWFjIG9zIHgpL2kudGVzdChuKT9lPSJNYWMgT1MgWCI6Lyh3aW5kb3dzfHdpbjMyKS9pLnRlc3Qobik/KGU9IldpbmRvd3MiLHQ9ZnVuY3Rpb24oZSl7dmFyIHQ7Y29uc3Qgbj1lLm1hdGNoKG5ldyBSZWdFeHAoIldpbmRvd3MgTlQgKFtcXGQsLl0rKSIpKTtyZXR1cm4gbiYmbnVsbCE9KHQ9aVtuWzFdXSk/dDoiVW5rbm93biJ9KG4pKTplPSJVbmtub3duIjtyZXR1cm57b3M6ZSxvc1ZlcnNpb246dH19KCkpLGF9ZnVuY3Rpb24gdSgpe3JldHVybiBjKCkub3N9YXN5bmMgZnVuY3Rpb24gbCgpe2lmKCFzKXtjb25zdCBlPWMoKTtpZigiV2luZG93cyI9PWUub3Mpe2NvbnN0IHQ9YXdhaXQoMCxvLmEpKCk7aWYodCl7cGFyc2VJbnQodC5wbGF0Zm9ybVZlcnNpb24uc3BsaXQoIi4iKVswXSk+PTEzJiYoZS5vc1ZlcnNpb249IjExIil9fXM9ZX1yZXR1cm4gc319LDE1MTg5NTooZSx0LG4pPT57InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHIoKXtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIG5hdmlnYXRvciYmbmF2aWdhdG9yLnVzZXJBZ2VudD9uYXZpZ2F0b3IudXNlckFnZW50OiIifW4uZCh0LHtaOigpPT5yfSl9LDExNzA0NzooZSx0LG4pPT57InVzZSBzdHJpY3QiO24uZCh0LHt5OigpPT5pfSk7Y2xhc3MgcntnZXQgbG9jYXRpb24oKXtyZXR1cm4gd2luZG93LmxvY2F0aW9ufWdldCBpbm5lckhlaWdodCgpe3JldHVybiB3aW5kb3cuaW5uZXJIZWlnaHR9Z2V0IGlubmVyV2lkdGgoKXtyZXR1cm4gd2luZG93LmlubmVyV2lkdGh9Z2V0IGRvY3VtZW50KCl7cmV0dXJuIHdpbmRvdy5kb2N1bWVudH1nZXQgaXNQd2EoKXtyZXR1cm4gd2luZG93Lm1hdGNoTWVkaWEoIihkaXNwbGF5LW1vZGU6IHN0YW5kYWxvbmUpIikubWF0Y2hlc31nZXQgY29va2llKCl7cmV0dXJuIHdpbmRvdy5kb2N1bWVudC5jb29raWV9Z2V0IGxvY2FsU3RvcmFnZSgpe3JldHVybiB3aW5kb3cubG9jYWxTdG9yYWdlfWdldCBvcmlnaW4oKXtyZXR1cm4gd2luZG93Lm9yaWdpbn1nZXQgX2xvY1N0cmluZ3MoKXtyZXR1cm4gd2luZG93Ll9sb2NTdHJpbmdzfX1sZXQgbztmdW5jdGlvbiBpKCl7cmV0dXJuIG98fCJ1bmRlZmluZWQiPT10eXBlb2Ygd2luZG93fHwobz1uZXcgciksb319LDYyNDQ1OihlLHQsbik9PnsidXNlIHN0cmljdCI7bi5kKHQse1k6KCk9PnJ9KTt2YXIgcj0oZT0+KGUuTWFpbD0iTWFpbCIsZS5DYWxlbmRhcj0iQ2FsZW5kYXIiLGUuUGVvcGxlPSJQZW9wbGUiLGUuRmlsZXNIdWI9IkZpbGVzSHViIixlLlRhc2tzPSJUYXNrcyIsZS5FdmVudGlmeT0iRXZlbnRpZnkiLGUuUHVibGlzaGVkQ2FsZW5kYXI9IlB1Ymxpc2hlZENhbGVuZGFyIixlLk1haWxEZWVwTGluaz0iTWFpbERlZXBMaW5rIixlLkFwcEhvc3Q9IkFwcEhvc3QiLGUuQ2FsZW5kYXJEZWVwTGluaz0iQ2FsZW5kYXJEZWVwTGluayIsZS5Hcm91cHM9Ikdyb3VwcyIsZS5NaWNyb3NvZnRQbGFjZXM9Ik1pY3Jvc29mdFBsYWNlcyIsZS5GZWVkPSJGZWVkIixlLkFkZGlzb249IkFkZGlzb24iLGUpKShyfHx7fSl9LDk2MDA3MzooZSx0LG4pPT57InVzZSBzdHJpY3QiO24uZCh0LHtBOigpPT5pfSk7dmFyIHI9big2MjQ0NSksbz1uKDQ1ODgxNyk7ZnVuY3Rpb24gaSgpe3ZhciBlO2NvbnN0IHQ9ZnVuY3Rpb24oKXt2YXIgZTtjb25zdCB0PW51bGw9PShlPW51bGw9PXdpbmRvdz92b2lkIDA6d2luZG93LmxvY2F0aW9uKT92b2lkIDA6ZS5wYXRobmFtZTtpZih0JiZ0LmluY2x1ZGVzKCJvb2JlIikpcmV0dXJuKDAsby5KSSkoImxvYWRNb2R1bGUiKT8oMCxvLm1uKSgibG9hZE1vZHVsZSIpOm51bGw7cmV0dXJuIG51bGx9KCl8fChudWxsPT0oZT1udWxsPT13aW5kb3c/dm9pZCAwOndpbmRvdy5sb2NhdGlvbik/dm9pZCAwOmUucGF0aG5hbWUpO2lmKHQpe2NvbnN0IGU9dC5zcGxpdCgiLyIpO2lmKGEoIm1haWwiLGUpKXJldHVybiByLlkuTWFpbERlZXBMaW5rO2lmKGEoImNhbGVuZGFyIixlKSlyZXR1cm4gci5ZLkNhbGVuZGFyRGVlcExpbms7aWYoMD09dC5pbmRleE9mKCIvY2FsZW5kYXIiKXx8MD09dC5pbmRleE9mKCIvaG9zdGVkL2NhbGVuZGFyIikpcmV0dXJuIHIuWS5DYWxlbmRhcjtpZigwPT10LmluZGV4T2YoIi9wZW9wbGUiKXx8MD09dC5pbmRleE9mKCIvaG9zdGVkL3Blb3BsZSIpKXJldHVybiByLlkuUGVvcGxlO2lmKDA9PXQuaW5kZXhPZigiL2ZpbGVzIikpcmV0dXJuIHIuWS5GaWxlc0h1YjtpZigwPT10LmluZGV4T2YoIi9ob3N0LyIpKXJldHVybiByLlkuQXBwSG9zdDtpZigwPT10LmluZGV4T2YoIi9ncm91cHMiKXx8MD09dC5pbmRleE9mKCIvaG9zdGVkL2dyb3VwcyIpKXJldHVybiByLlkuR3JvdXBzO2lmKDA9PXQuaW5kZXhPZigiL2V2ZW50aWZ5Iil8fDA9PXQuaW5kZXhPZigiL2hvc3RlZC9ldmVudGlmeSIpKXJldHVybiByLlkuRXZlbnRpZnk7aWYoMD09dC5pbmRleE9mKCIvcGxhY2VzIil8fDA9PXQuaW5kZXhPZigiL2hvc3RlZC9wbGFjZXMiKSlyZXR1cm4gci5ZLk1pY3Jvc29mdFBsYWNlc31yZXR1cm4gci5ZLk1haWx9ZnVuY3Rpb24gYShlLHQpe3ZhciBuLHIsbyxpO3JldHVybiB0WzFdPT1lJiYoMD09KG51bGw9PShuPXRbMl0pP3ZvaWQgMDpuLmluZGV4T2YoImRlZXBsaW5rIikpfHwwPT0obnVsbD09KHI9dFszXSk/dm9pZCAwOnIuaW5kZXhPZigiZGVlcGxpbmsiKSkpfHwiaG9zdGVkIj09dFsxXSYmdFsyXT09ZSYmKDA9PShudWxsPT0obz10WzNdKT92b2lkIDA6by5pbmRleE9mKCJkZWVwbGluayIpKXx8MD09KG51bGw9PShpPXRbNF0pP3ZvaWQgMDppLmluZGV4T2YoImRlZXBsaW5rIikpKX19LDYyMTI3NjooZSx0LG4pPT57InVzZSBzdHJpY3QiO24uZCh0LHtaOigpPT5PfSk7dmFyIHI9bigzNDUzNjIpLG89big5MjM4MDYpLGk9big2NjIzNzIpLGE9bigzMTcxNDApLHM9big5Mjk1NDEpLGM9big4MDMxNDUpLHU9bigxNzM1OTcpLGw9big4MjY0NTQpLEg9bigzODI3NzgpLGQ9big0NzY5MDUpLGY9big5NDk2NzApLFM9NTAwO2Z1bmN0aW9uIHAoZSx0LG4pe3QmJigwLHMua0opKHQpJiZ0W3UuUjVdPjAmJih0PXQuc29ydCgoZnVuY3Rpb24oZSx0KXtyZXR1cm4gZVtILnlpXS10W0gueWldfSkpLCgwLHMudE8pKHQsKGZ1bmN0aW9uKGUpe2VbSC55aV08UyYmKDAscy5feSkoIkNoYW5uZWwgaGFzIGludmFsaWQgcHJpb3JpdHkgLSAiK2VbdS5wWl0pfSkpLGVbdS5NV10oe3F1ZXVlOigwLHMuRkwpKHQpLGNoYWluOigwLGQualYpKHQsblt1LlRDXSxuKX0pKX12YXIgQz1uKDczMTc0MCksdj1uKDIzNTYyKSxoPW4oMjkyMzkpLG09ZnVuY3Rpb24oZSl7ZnVuY3Rpb24gdCgpe3ZhciBuLHIsYT1lLmNhbGwodGhpcyl8fHRoaXM7ZnVuY3Rpb24gbCgpe249MCxyPVtdfXJldHVybiBhLmlkZW50aWZpZXI9IlRlbGVtZXRyeUluaXRpYWxpemVyUGx1Z2luIixhLnByaW9yaXR5PTE5OSxsKCksKDAsby5aKSh0LGEsKGZ1bmN0aW9uKGUsdCl7ZS5hZGRUZWxlbWV0cnlJbml0aWFsaXplcj1mdW5jdGlvbihlKXt2YXIgdD17aWQ6bisrLGZuOmV9O3JldHVybiByW3UuTVddKHQpLHtyZW1vdmU6ZnVuY3Rpb24oKXsoMCxzLnRPKShyLChmdW5jdGlvbihlLG4pe2lmKGUuaWQ9PT10LmlkKXJldHVybiByW3UuY2JdKG4sMSksLTF9KSl9fX0sZVtILmhMXT1mdW5jdGlvbih0LG4pe2Zvcih2YXIgbz0hMSxhPXJbdS5SNV0sbD0wO2w8YTsrK2wpe3ZhciBIPXJbbF07aWYoSCl0cnl7aWYoITE9PT1ILmZuW3UuWlZdKG51bGwsW3RdKSl7bz0hMDticmVha319Y2F0Y2goZSl7KDAsaS5rUCkoblt1Lm1jXSgpLDEsNjQsIk9uZSBvZiB0ZWxlbWV0cnkgaW5pdGlhbGl6ZXJzIGZhaWxlZCwgdGVsZW1ldHJ5IGl0ZW0gd2lsbCBub3QgYmUgc2VudDogIisoMCxzLmpqKShlKSx7ZXhjZXB0aW9uOigwLGMuZVUpKGUpfSwhMCl9fW98fGVbdS51TF0odCxuKX0sZVt1LkYzXT1mdW5jdGlvbigpe2woKX19KSksYX1yZXR1cm4oMCxyLm5lKSh0LGUpLHQuX19pZUR5bj0xLHR9KG4oNzY2ODY0KS5pKSxJPW4oODUxOTMwKSxBPSJQbHVnaW5zIG11c3QgcHJvdmlkZSBpbml0aWFsaXplIG1ldGhvZCIsZz0iU0RLIGlzIHN0aWxsIHVubG9hZGluZy4uLiIsUj17bG9nZ2luZ0xldmVsQ29uc29sZToxfTtmdW5jdGlvbiBOKGUsdCl7cmV0dXJuIG5ldyBhLkprKHQpfWZ1bmN0aW9uIFUoZSx0KXt2YXIgbj0hMTtyZXR1cm4oMCxzLnRPKSh0LChmdW5jdGlvbih0KXtpZih0PT09ZSlyZXR1cm4gbj0hMCwtMX0pKSxufXZhciB5PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSgpe3ZhciB0LG4sYyx5LEssdyxiLFAsayxFLE8sVCx4LEQsTSxCLEYsTCxWLFcsaj0wOygwLG8uWikoZSx0aGlzLChmdW5jdGlvbihlKXtmdW5jdGlvbiBvKCl7bj0hMSx0PSgwLHMubW0pKCEwLHt9LFIpLGVbdS5UQ109dCxlW3UuZVpdPW5ldyBpLkFRKHQpLGVbdS5pQ109W10sTT1uZXcgbSxjPVtdLHk9bnVsbCxLPW51bGwsdz1udWxsLGI9bnVsbCxQPW51bGwsRT1udWxsLGs9W10sTz1udWxsLFQ9bnVsbCx4PW51bGwsRD0hMSxCPW51bGwsRj0oMCx2LkopKCJBSUJhc2VDb3JlIiwhMCksTD0oMCxJLlkpKCksVz1udWxsfWZ1bmN0aW9uIEooKXtyZXR1cm4oMCxkLkNEKSh6KCksdCxlKX1mdW5jdGlvbiBxKG4pe3ZhciByPWZ1bmN0aW9uKGUsdCxuKXt2YXIgcixvPVtdLGE9e307cmV0dXJuKDAscy50TykobiwoZnVuY3Rpb24obil7KCgwLHMubGUpKG4pfHwoMCxzLmxlKShuW3UuVkxdKSkmJigwLHMuX3kpKEEpO3ZhciByPW5bSC55aV0sYz1uW3UucFpdO24mJnImJigoMCxzLmxlKShhW3JdKT9hW3JdPWM6KDAsaS5qVikoZSwiVHdvIGV4dGVuc2lvbnMgaGF2ZSBzYW1lIHByaW9yaXR5ICMiK3IrIiAtICIrYVtyXSsiLCAiK2MpKSwoIXJ8fHI8dCkmJm9bdS5NV10obil9KSksKHI9e2FsbDpufSlbSC5vVl09byxyfShlW3UuZVpdLFMsayk7RT1yW0gub1ZdLFA9bnVsbDt2YXIgbz1yLmFsbDtpZih4PSgwLHMuRkwpKGZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1bXTtpZihlJiYoMCxzLnRPKShlLChmdW5jdGlvbihlKXtyZXR1cm4gcChyLGUsbil9KSksdCl7dmFyIG89W107KDAscy50TykodCwoZnVuY3Rpb24oZSl7ZVtILnlpXT5TJiZvW3UuTVddKGUpfSkpLHAocixvLG4pfXJldHVybiByfShULG8sZSkpLE8pe3ZhciBhPSgwLHMuVUEpKG8sTyk7LTEhPT1hJiZvW3UuY2JdKGEsMSksLTEhPT0oYT0oMCxzLlVBKShFLE8pKSYmRVt1LmNiXShhLDEpLE8uX3NldFF1ZXVlKHgpfWVsc2UgTz1mdW5jdGlvbihlLHQpe2Z1bmN0aW9uIG4oKXtyZXR1cm4oMCxkLkNEKShudWxsLHRbdS5UQ10sdCxudWxsKX1mdW5jdGlvbiByKGUsdCxuLHIpe3ZhciBvPWU/ZVt1LlI1XSsxOjE7ZnVuY3Rpb24gaSgpezA9PS0tbyYmKHImJnIoKSxyPW51bGwpfW8+MCYmKDAscy50TykoZSwoZnVuY3Rpb24oZSl7aWYoZSYmZS5xdWV1ZVt1LlI1XT4wKXt2YXIgcj1lLmNoYWluLGE9dFt1LnpWXShyKTthW3UuRmNdKGkpLG4oYSl9ZWxzZSBvLS19KSksaSgpfXZhciBvPSExLGk9e2lkZW50aWZpZXI6IkNoYW5uZWxDb250cm9sbGVyUGx1Z2luIixwcmlvcml0eTpTLGluaXRpYWxpemU6ZnVuY3Rpb24odCxuLHIsaSl7bz0hMCwoMCxzLnRPKShlLChmdW5jdGlvbihlKXtlJiZlLnF1ZXVlW3UuUjVdPjAmJigwLGYuYlApKCgwLGQuQ0QpKGUuY2hhaW4sdCxuKSxyKX0pKX0saXNJbml0aWFsaXplZDpmdW5jdGlvbigpe3JldHVybiBvfSxwcm9jZXNzVGVsZW1ldHJ5OmZ1bmN0aW9uKHQsbyl7cihlLG98fG4oKSwoZnVuY3Rpb24oZSl7ZVt1LnVMXSh0KX0pLChmdW5jdGlvbigpe29bdS51TF0odCl9KSl9LHVwZGF0ZTpmdW5jdGlvbih0LG4pe3ZhciBvPW58fHtyZWFzb246MH07cmV0dXJuIHIoZSx0LChmdW5jdGlvbihlKXtlW3UudUxdKG8pfSksKGZ1bmN0aW9uKCl7dFt1LnVMXShvKX0pKSwhMH0scGF1c2U6ZnVuY3Rpb24oKXtyKGUsbigpLChmdW5jdGlvbihlKXtlLml0ZXJhdGUoKGZ1bmN0aW9uKGUpe2UucGF1c2UmJmUucGF1c2UoKX0pKX0pLG51bGwpfSxyZXN1bWU6ZnVuY3Rpb24oKXtyKGUsbigpLChmdW5jdGlvbihlKXtlLml0ZXJhdGUoKGZ1bmN0aW9uKGUpe2UucmVzdW1lJiZlLnJlc3VtZSgpfSkpfSksbnVsbCl9LHRlYXJkb3duOmZ1bmN0aW9uKHQsbil7dmFyIGk9bnx8e3JlYXNvbjowLGlzQXN5bmM6ITF9O3JldHVybiByKGUsdCwoZnVuY3Rpb24oZSl7ZVt1LnVMXShpKX0pLChmdW5jdGlvbigpe3RbdS51TF0oaSksbz0hMX0pKSwhMH0sZ2V0Q2hhbm5lbDpmdW5jdGlvbih0KXt2YXIgbj1udWxsO3JldHVybiBlJiZlW3UuUjVdPjAmJigwLHMudE8pKGUsKGZ1bmN0aW9uKGUpe2lmKGUmJmUucXVldWVbdS5SNV0+MCYmKCgwLHMudE8pKGUucXVldWUsKGZ1bmN0aW9uKGUpe2lmKGVbdS5wWl09PT10KXJldHVybiBuPWUsLTF9KSksbikpcmV0dXJuLTF9KSksbn0sZmx1c2g6ZnVuY3Rpb24odCxvLGksYSl7dmFyIHM9MSxjPSExLGw9bnVsbDtmdW5jdGlvbiBIKCl7cy0tLGMmJjA9PT1zJiYobCYmKGNsZWFyVGltZW91dChsKSxsPW51bGwpLG8mJm8oYyksbz1udWxsKX1yZXR1cm4gYT1hfHw1ZTMscihlLG4oKSwoZnVuY3Rpb24oZSl7ZS5pdGVyYXRlKChmdW5jdGlvbihlKXtpZihlW3Uua0xdKXtzKys7dmFyIG49ITE7ZVt1LmtMXSh0LChmdW5jdGlvbigpe249ITAsSCgpfSksaSl8fG58fCh0JiZudWxsPT1sP2w9c2V0VGltZW91dCgoZnVuY3Rpb24oKXtsPW51bGwsSCgpfSksYSk6SCgpKX19KSl9KSwoZnVuY3Rpb24oKXtjPSEwLEgoKX0pKSwhMH0sX3NldFF1ZXVlOmZ1bmN0aW9uKHQpe2U9dH19O3JldHVybiBpfSh4LGUpO29bdS5NV10oTyksRVt1Lk1XXShPKSxlW3UuaUNdPSgwLGYuQUEpKG8pLE9bdS5WTF0odCxlLG8pLCgwLGYuYlApKEooKSxvKSxlW3UuaUNdPSgwLHMuRkwpKCgwLGYuQUEpKEV8fFtdKSkuc2xpY2UoKSxuJiZmdW5jdGlvbih0KXt2YXIgbj0oMCxkLnh5KSh6KCksZSk7ZS5fdXBkYXRlSG9vayYmITA9PT1lLl91cGRhdGVIb29rKG4sdCl8fG5bdS51TF0odCl9KG4pfWZ1bmN0aW9uIFoodCl7dmFyIG4scj1udWxsLG89bnVsbDtyZXR1cm4oMCxzLnRPKShlW3UuaUNdLChmdW5jdGlvbihlKXtpZihlW3UucFpdPT09dCYmZSE9PU8mJmUhPT1NKXJldHVybiBvPWUsLTF9KSksIW8mJk8mJihvPU8uZ2V0Q2hhbm5lbCh0KSksbyYmKChuPXtwbHVnaW46b30pW3UuJGhdPWZ1bmN0aW9uKGUpeygwLGYuT1kpKG8pW0gubUVdPSFlfSxuLmlzRW5hYmxlZD1mdW5jdGlvbigpe3ZhciBlPSgwLGYuT1kpKG8pO3JldHVybiFlW3UuZmldJiYhZVtILm1FXX0sbi5yZW1vdmU9ZnVuY3Rpb24oZSx0KXt2YXIgbjt2b2lkIDA9PT1lJiYoZT0hMCk7dmFyIHI9W29dLGk9KChuPXtyZWFzb246MX0pW3UuZF09ZSxuKTtHKHIsaSwoZnVuY3Rpb24oZSl7ZSYmcSh7cmVhc29uOjMyLHJlbW92ZWQ6cn0pLHQmJnQoZSl9KSl9LHI9bikscn1mdW5jdGlvbiB6KCl7aWYoIVApe3ZhciBuPShFfHxbXSkuc2xpY2UoKTstMT09PSgwLHMuVUEpKG4sTSkmJm5bdS5NV10oTSksUD0oMCxkLmpWKSgoMCxmLkFBKShuKSx0LGUpfXJldHVybiBQfWZ1bmN0aW9uIEcobixyLG8pe2lmKG4mJm5bdS5SNV0+MCl7dmFyIGk9KDAsZC5qVikobix0LGUpLGE9KDAsZC5CdCkoaSxlKTthW3UuRmNdKChmdW5jdGlvbigpe3ZhciBlPSExLHQ9W107KDAscy50TykoaywoZnVuY3Rpb24ocixvKXtVKHIsbik/ZT0hMDp0W3UuTVddKHIpfSkpLGs9dDt2YXIgcj1bXTtUJiYoKDAscy50TykoVCwoZnVuY3Rpb24odCxvKXt2YXIgaT1bXTsoMCxzLnRPKSh0LChmdW5jdGlvbih0KXtVKHQsbik/ZT0hMDppW3UuTVddKHQpfSkpLHJbdS5NV10oaSl9KSksVD1yKSxvJiZvKGUpfSkpLGFbdS51TF0ocil9ZWxzZSBvKCExKX1mdW5jdGlvbiBZKCl7dmFyIG49ZVt1LmVaXT9lW3UuZVpdLnF1ZXVlOltdO24mJigoMCxzLnRPKShuLChmdW5jdGlvbihuKXt2YXIgcixvPSgocj17fSlbdS5JXT1CfHwiSW50ZXJuYWxNZXNzYWdlSWQ6ICIrblt1LkdjXSxyLmlLZXk9KDAscy52NCkodFt1LnAkXSksci50aW1lPSgwLHMuWTYpKG5ldyBEYXRlKSxyLmJhc2VUeXBlPWkubFEuZGF0YVR5cGUsci5iYXNlRGF0YT17bWVzc2FnZTpuW3UuZ1VdfSxyKTtlLnRyYWNrKG8pfSkpLG5bdS5SNV09MCl9ZnVuY3Rpb24gUShlLHQsbixyKXtyZXR1cm4gTz9PW3Uua0xdKGUsdCxufHw2LHIpOih0JiZ0KCExKSwhMCl9ZnVuY3Rpb24gWCh0KXt2YXIgbj1lW3UuZVpdO24/KDAsaS5rUCkobiwyLDczLHQpOigwLHMuX3kpKHQpfW8oKSxlW3UueWxdPWZ1bmN0aW9uKCl7cmV0dXJuIG59LGVbdS5WTF09ZnVuY3Rpb24obyxpLGEsYyl7RCYmKDAscy5feSkoZyksZVt1LnlsXSgpJiYoMCxzLl95KSgiQ29yZSBzaG91bGQgbm90IGJlIGluaXRpYWxpemVkIG1vcmUgdGhhbiBvbmNlIiksdD1vfHx7fSxlW3UuVENdPXQsKDAscy5sZSkob1t1LnAkXSkmJigwLHMuX3kpKCJQbGVhc2UgcHJvdmlkZSBpbnN0cnVtZW50YXRpb24ga2V5IikseT1jLGUuX25vdGlmaWNhdGlvbk1hbmFnZXI9YyxmdW5jdGlvbigpe3ZhciBlPSgwLHMudjQpKHQuZGlzYWJsZURiZ0V4dCk7ITA9PT1lJiZWJiYoeVt1Lm43XShWKSxWPW51bGwpO3kmJiFWJiYhMCE9PWUmJihWPSgwLGgucCkodCkseVt1LmddKFYpKX0oKSxmdW5jdGlvbigpe3ZhciBlPSgwLHMudjQpKHQuZW5hYmxlUGVyZk1ncik7IWUmJncmJih3PW51bGwpO2UmJigwLHMucUspKHQsSC5ETixOKX0oKSwoMCxzLnFLKSh0LEguWmgse30pLk5vdGlmaWNhdGlvbk1hbmFnZXI9eSxhJiYoZVt1LmVaXT1hKTt2YXIgbD0oMCxzLnFLKSh0LEguanMsW10pOyhrPVtdKVt1Lk1XXS5hcHBseShrLCgwLHIuJGgpKCgwLHIuJGgpKFtdLGksITEpLGwsITEpKSxUPSgwLHMucUspKHQsSC5aLFtdKSxxKG51bGwpLHgmJjAhPT14W3UuUjVdfHwoMCxzLl95KSgiTm8gIitILlorIiBhdmFpbGFibGUiKSxuPSEwLGUucmVsZWFzZVF1ZXVlKCl9LGUuZ2V0VHJhbnNtaXNzaW9uQ29udHJvbHM9ZnVuY3Rpb24oKXt2YXIgZT1bXTtyZXR1cm4geCYmKDAscy50TykoeCwoZnVuY3Rpb24odCl7ZVt1Lk1XXSh0LnF1ZXVlKX0pKSwoMCxzLkZMKShlKX0sZS50cmFjaz1mdW5jdGlvbihuKXtuLmlLZXk9bi5pS2V5fHx0W3UucCRdLG5bdS5aX109blt1LlpfXXx8KDAscy5ZNikobmV3IERhdGUpLG4udmVyPW4udmVyfHwiNC4wIiwhRCYmZVt1LnlsXSgpP0ooKVt1LnVMXShuKTpjW3UuTVddKG4pfSxlW3UuU0RdPUosZVt1LnRiXT1mdW5jdGlvbigpe3ZhciB0O3JldHVybiB5fHwoeT0oMCxsLnB1KSgoKHQ9e30pW3UuZ109ZnVuY3Rpb24oZSl7fSx0W3UubjddPWZ1bmN0aW9uKGUpe30sdFtILnVDXT1mdW5jdGlvbihlKXt9LHRbSC4kRl09ZnVuY3Rpb24oZSx0KXt9LHRbSC5mX109ZnVuY3Rpb24oZSx0KXt9LHQpKSxlLl9ub3RpZmljYXRpb25NYW5hZ2VyPXkpLHl9LGVbdS5nXT1mdW5jdGlvbihlKXt5JiZ5W3UuZ10oZSl9LGVbdS5uN109ZnVuY3Rpb24oZSl7eSYmeVt1Lm43XShlKX0sZS5nZXRDb29raWVNZ3I9ZnVuY3Rpb24oKXtyZXR1cm4gYnx8KGI9KDAsQy5OeikodCxlW3UuZVpdKSksYn0sZS5zZXRDb29raWVNZ3I9ZnVuY3Rpb24oZSl7Yj1lfSxlW0gua2xdPWZ1bmN0aW9uKCl7aWYoIUsmJiF3JiYoMCxzLnY0KSh0LmVuYWJsZVBlcmZNZ3IpKXt2YXIgbj0oMCxzLnY0KSh0W0guRE5dKTsoMCxzLm1mKShuKSYmKHc9bihlLGVbdS50Yl0oKSkpfXJldHVybiBLfHx3fHwoMCxhLmo1KSgpfSxlLnNldFBlcmZNZ3I9ZnVuY3Rpb24oZSl7Sz1lfSxlLmV2ZW50Q250PWZ1bmN0aW9uKCl7cmV0dXJuIGNbdS5SNV19LGUucmVsZWFzZVF1ZXVlPWZ1bmN0aW9uKCl7aWYobiYmY1t1LlI1XT4wKXt2YXIgZT1jO2M9W10sKDAscy50TykoZSwoZnVuY3Rpb24oZSl7SigpW3UudUxdKGUpfSkpfX0sZS5wb2xsSW50ZXJuYWxMb2dzPWZ1bmN0aW9uKGUpe0I9ZXx8bnVsbDt2YXIgbj0oMCxzLnY0KSh0LmRpYWdub3N0aWNMb2dJbnRlcnZhbCk7cmV0dXJuIG4mJm4+MHx8KG49MWU0KSxqJiZjbGVhckludGVydmFsKGopLGo9c2V0SW50ZXJ2YWwoKGZ1bmN0aW9uKCl7WSgpfSksbil9LGVbdS5MU109ZnVuY3Rpb24oKXtqJiYoY2xlYXJJbnRlcnZhbChqKSxqPTAsWSgpKX0sKDAscy5WYikoZSwoZnVuY3Rpb24oKXtyZXR1cm4gTX0pLFsiYWRkVGVsZW1ldHJ5SW5pdGlhbGl6ZXIiXSksZS51bmxvYWQ9ZnVuY3Rpb24odCxyLGkpe3ZhciBhO3ZvaWQgMD09PXQmJih0PSEwKSxufHwoMCxzLl95KSgiU0RLIGlzIG5vdCBpbml0aWFsaXplZCIpLEQmJigwLHMuX3kpKGcpO3ZhciBjPSgoYT17cmVhc29uOjUwfSlbdS5kXT10LGEuZmx1c2hDb21wbGV0ZT0hMSxhKSxsPSgwLGQuQnQpKHooKSxlKTtmdW5jdGlvbiBIKHQpe2MuZmx1c2hDb21wbGV0ZT10LEQ9ITAsTC5ydW4obCxjKSxlW3UuTFNdKCksbFt1LnVMXShjKX1sW3UuRmNdKChmdW5jdGlvbigpe28oKSxyJiZyKGMpfSksZSksUSh0LEgsNixpKXx8SCghMSl9LGVbdS5UT109WixlLmFkZFBsdWdpbj1mdW5jdGlvbihlLHQsbixyKXtpZighZSlyZXR1cm4gciYmcighMSksdm9pZCBYKEEpO3ZhciBvPVooZVt1LnBaXSk7aWYobyYmIXQpcmV0dXJuIHImJnIoITEpLHZvaWQgWCgiUGx1Z2luIFsiK2VbdS5wWl0rIl0gaXMgYWxyZWFkeSBsb2FkZWQhIik7dmFyIGk9e3JlYXNvbjoxNn07ZnVuY3Rpb24gYSh0KXtrW3UuTVddKGUpLGkuYWRkZWQ9W2VdLHEoaSksciYmcighMCl9aWYobyl7dmFyIHM9W28ucGx1Z2luXTtHKHMse3JlYXNvbjoyLGlzQXN5bmM6ISFufSwoZnVuY3Rpb24oZSl7ZT8oaS5yZW1vdmVkPXMsaS5yZWFzb258PTMyLGEoKSk6ciYmcighMSl9KSl9ZWxzZSBhKCl9LGUuZXZ0TmFtZXNwYWNlPWZ1bmN0aW9uKCl7cmV0dXJuIEZ9LGVbdS5rTF09USxlLmdldFRyYWNlQ3R4PWZ1bmN0aW9uKGUpe3JldHVybiBXfHwoVz0oMCxmLlluKSgpKSxXfSxlLnNldFRyYWNlQ3R4PWZ1bmN0aW9uKGUpe1c9ZXx8bnVsbH0sKDAscy5PaSkoZSwiYWRkVW5sb2FkQ2IiLChmdW5jdGlvbigpe3JldHVybiBMfSksImFkZCIpfSkpfXJldHVybiBlLl9faWVEeW49MSxlfSgpO2Z1bmN0aW9uIEsoZSx0LG4scil7KDAscy50TykoZSwoZnVuY3Rpb24oZSl7aWYoZSYmZVt0XSlpZihuKXNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7cmV0dXJuIHIoZSl9KSwwKTtlbHNlIHRyeXtyKGUpfWNhdGNoKGUpe319KSl9dmFyIHc9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKHQpe3RoaXMubGlzdGVuZXJzPVtdO3ZhciBuPSEhKHR8fHt9KS5wZXJmRXZ0c1NlbmRBbGw7KDAsby5aKShlLHRoaXMsKGZ1bmN0aW9uKGUpe2VbdS5nXT1mdW5jdGlvbih0KXtlLmxpc3RlbmVyc1t1Lk1XXSh0KX0sZVt1Lm43XT1mdW5jdGlvbih0KXtmb3IodmFyIG49KDAscy5VQSkoZVt1LmRFXSx0KTtuPi0xOyllLmxpc3RlbmVyc1t1LmNiXShuLDEpLG49KDAscy5VQSkoZVt1LmRFXSx0KX0sZVtILnVDXT1mdW5jdGlvbih0KXtLKGVbdS5kRV0sSC51QywhMCwoZnVuY3Rpb24oZSl7ZVtILnVDXSh0KX0pKX0sZVtILiRGXT1mdW5jdGlvbih0LG4pe0soZVt1LmRFXSxILiRGLCEwLChmdW5jdGlvbihlKXtlW0guJEZdKHQsbil9KSl9LGVbSC5mX109ZnVuY3Rpb24odCxuKXtLKGVbdS5kRV0sSC5mXyxuLChmdW5jdGlvbihlKXtlW0guZl9dKHQsbil9KSl9LGVbSC5DJF09ZnVuY3Rpb24odCl7dCYmKCFuJiZ0W3UuUExdKCl8fEsoZVt1LmRFXSxILkMkLCExLChmdW5jdGlvbihlKXt0W3UuZF0/c2V0VGltZW91dCgoZnVuY3Rpb24oKXtyZXR1cm4gZVtILkMkXSh0KX0pLDApOmVbSC5DJF0odCl9KSkpfX0pKX1yZXR1cm4gZS5fX2llRHluPTEsZX0oKSxiPWZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQoKXt2YXIgbj1lLmNhbGwodGhpcyl8fHRoaXM7cmV0dXJuKDAsby5aKSh0LG4sKGZ1bmN0aW9uKGUsdCl7ZnVuY3Rpb24gbih0KXt2YXIgbj1lW3UudGJdKCk7biYmbltILiRGXShbdF0sMil9ZVt1LlZMXT1mdW5jdGlvbihlLG4scixvKXt0W3UuVkxdKGUsbixyfHxuZXcgaS5BUShlKSxvfHxuZXcgdyhlKSl9LGUudHJhY2s9ZnVuY3Rpb24ocil7KDAsYS5MbSkoZVtILmtsXSgpLChmdW5jdGlvbigpe3JldHVybiJBcHBJbnNpZ2h0c0NvcmU6dHJhY2sifSksKGZ1bmN0aW9uKCl7bnVsbD09PXImJihuKHIpLCgwLHMuX3kpKCJJbnZhbGlkIHRlbGVtZXRyeSBpdGVtIikpLGZ1bmN0aW9uKGUpeygwLHMubGUpKGVbdS5JXSkmJihuKGUpLCgwLHMuX3kpKCJ0ZWxlbWV0cnkgbmFtZSByZXF1aXJlZCIpKX0ociksdC50cmFjayhyKX0pLChmdW5jdGlvbigpe3JldHVybntpdGVtOnJ9fSksIXIuc3luYyl9fSkpLG59cmV0dXJuKDAsci5uZSkodCxlKSx0Ll9faWVEeW49MSx0fSh5KSxQPW4oNzE4MzY2KSxrPW4oNjkxMjU0KSxFPWZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQoKXt2YXIgbj1lLmNhbGwodGhpcyl8fHRoaXM7cmV0dXJuIG4ucGx1Z2luVmVyc2lvblN0cmluZ0Fycj1bXSwoMCxvLlopKHQsbiwoZnVuY3Rpb24oZSx0KXtlLmxvZ2dlciYmZS5sb2dnZXIucXVldWV8fChlLmxvZ2dlcj1uZXcgaS5BUSh7bG9nZ2luZ0xldmVsQ29uc29sZToxfSkpLGUuaW5pdGlhbGl6ZT1mdW5jdGlvbihuLHIsbyx1KXsoMCxhLkxtKShlLChmdW5jdGlvbigpe3JldHVybiJBcHBJbnNpZ2h0c0NvcmUuaW5pdGlhbGl6ZSJ9KSwoZnVuY3Rpb24oKXt2YXIgYT1lLnBsdWdpblZlcnNpb25TdHJpbmdBcnI7aWYobil7bi5lbmRwb2ludFVybHx8KG4uZW5kcG9pbnRVcmw9UC5ZVCk7dmFyIGw9bi5wcm9wZXJ0eVN0b3JhZ2VPdmVycmlkZTshbHx8bC5nZXRQcm9wZXJ0eSYmbC5zZXRQcm9wZXJ0eXx8KDAscy5feSkoIkludmFsaWQgcHJvcGVydHkgc3RvcmFnZSBvdmVycmlkZSBwYXNzZWQuIiksbi5jaGFubmVscyYmKDAscy50Tykobi5jaGFubmVscywoZnVuY3Rpb24oZSl7ZSYmKDAscy50TykoZSwoZnVuY3Rpb24oZSl7aWYoZS5pZGVudGlmaWVyJiZlLnZlcnNpb24pe3ZhciB0PWUuaWRlbnRpZmllcisiPSIrZS52ZXJzaW9uO2EucHVzaCh0KX19KSl9KSl9ZS5nZXRXUGFyYW09ZnVuY3Rpb24oKXtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIGRvY3VtZW50fHxuLmVuYWJsZVdQYXJhbT8wOi0xfSxyJiYoMCxzLnRPKShyLChmdW5jdGlvbihlKXtpZihlJiZlLmlkZW50aWZpZXImJmUudmVyc2lvbil7dmFyIHQ9ZS5pZGVudGlmaWVyKyI9IitlLnZlcnNpb247YS5wdXNoKHQpfX0pKSxlLnBsdWdpblZlcnNpb25TdHJpbmc9YS5qb2luKCI7IiksZS5wbHVnaW5WZXJzaW9uU3RyaW5nQXJyPWE7dHJ5e3QuaW5pdGlhbGl6ZShuLHIsbyx1KSxlLnBvbGxJbnRlcm5hbExvZ3MoIkludGVybmFsTG9nIil9Y2F0Y2godCl7dmFyIEg9ZS5sb2dnZXIsZD0oMCxjLmVVKSh0KTstMSE9PWQuaW5kZXhPZigiY2hhbm5lbHMiKSYmKGQrPSJcbiAtIENoYW5uZWxzIG11c3QgYmUgcHJvdmlkZWQgdGhyb3VnaCBjb25maWcuY2hhbm5lbHMgb25seSEiKSwoMCxpLmtQKShILDEsNTE0LCJTREsgSW5pdGlhbGl6YXRpb24gRmFpbGVkIC0gbm8gdGVsZW1ldHJ5IHdpbGwgYmUgc2VudDogIitkKX19KSwoZnVuY3Rpb24oKXtyZXR1cm57Y29uZmlnOm4sZXh0ZW5zaW9uczpyLGxvZ2dlcjpvLG5vdGlmaWNhdGlvbk1hbmFnZXI6dX19KSl9LGUudHJhY2s9ZnVuY3Rpb24obil7KDAsYS5MbSkoZSwoZnVuY3Rpb24oKXtyZXR1cm4iQXBwSW5zaWdodHNDb3JlLnRyYWNrIn0pLChmdW5jdGlvbigpe3ZhciByPW47aWYocil7ci50aW1pbmdzPXIudGltaW5nc3x8e30sci50aW1pbmdzLnRyYWNrU3RhcnQ9KDAsay5oSykoKSwoMCxrLnI3KShyLmxhdGVuY3kpfHwoci5sYXRlbmN5PTEpO3ZhciBvPXIuZXh0PXIuZXh0fHx7fTtvLnNkaz1vLnNka3x8e30sby5zZGsudmVyPWsudnM7dmFyIGk9ci5iYXNlRGF0YT1yLmJhc2VEYXRhfHx7fTtpW1AubzZdPWlbUC5vNl18fHt9O3ZhciBhPWlbUC5vNl07YVtQLnA4XT1hW1AucDhdfHxlLnBsdWdpblZlcnNpb25TdHJpbmd8fFAucVN9dC50cmFjayhyKX0pLChmdW5jdGlvbigpe3JldHVybntpdGVtOm59fSksIW4uc3luYyl9fSkpLG59cmV0dXJuKDAsci5uZSkodCxlKSx0Ll9faWVEeW49MSx0fShiKTtjb25zdCBPPUV9LDcxODM2NjooZSx0LG4pPT57InVzZSBzdHJpY3QiO24uZCh0LHtZVDooKT0+byxvNjooKT0+YSxwODooKT0+aSxxUzooKT0+cn0pO3ZhciByPSIiLG89Imh0dHBzOi8vYnJvd3Nlci5ldmVudHMuZGF0YS5taWNyb3NvZnQuY29tL09uZUNvbGxlY3Rvci8xLjAvIixpPSJ2ZXJzaW9uIixhPSJwcm9wZXJ0aWVzIn0sNjkxMjU0OihlLHQsbik9PnsidXNlIHN0cmljdCI7bi5kKHQse0RvOigpPT5BLFNuOigpPT5DLFZ2OigpPT5JLGNtOigpPT5nLGhLOigpPT5OLGlmOigpPT5LLGpNOigpPT52LGw3OigpPT5SLG1KOigpPT5iLG90OigpPT5QLHI3OigpPT5oLHZzOigpPT5mLHlqOigpPT5tfSk7dmFyIHIsbz1uKDgwMzE0NSksaT1uKDkyOTU0MSksYT1uKDczMTc0MCkscz1uKDY4NTU4MyksYz1uKDIyMTkwOCksdT1uKDcwNjAzOCksbD1uKDc1NTk5MiksSD1uKDgyNjQ1NCksZD1uKDcxODM2NiksZj0iMURTLVdlYi1KUy0zLjIuOSIsUz0id2l0aENyZWRlbnRpYWxzIixwPSgocj17fSlbMF09MCxyWzJdPTYsclsxXT0xLHJbM109NyxyWzQwOThdPTYscls0MDk3XT0xLHJbNDA5OV09NyxyKTtCb29sZWFuKCgwLG8uTWUpKCkpLEJvb2xlYW4oKDAsby5KaikoKSk7ZnVuY3Rpb24gQyhlKXtyZXR1cm4hKGU9PT1kLnFTfHwoMCxpLmxlKShlKSl9ZnVuY3Rpb24gdihlKXtpZihlKXt2YXIgdD1lLmluZGV4T2YoIi0iKTtpZih0Pi0xKXJldHVybiBlLnN1YnN0cmluZygwLHQpfXJldHVybiBkLnFTfWZ1bmN0aW9uIGgoZSl7cmV0dXJuISEoZSYmKDAsaS5oaikoZSkmJmU+PTEmJmU8PTQpfWZ1bmN0aW9uIG0oZSx0LG4pe2lmKCF0JiYhQyh0KXx8InN0cmluZyIhPXR5cGVvZiBlKXJldHVybiBudWxsO3ZhciByPXR5cGVvZiB0O2lmKCJzdHJpbmciPT09cnx8Im51bWJlciI9PT1yfHwiYm9vbGVhbiI9PT1yfHwoMCxpLmtKKSh0KSl0PXt2YWx1ZTp0fTtlbHNlIGlmKCJvYmplY3QiIT09cnx8Yy5DWS5jYWxsKHQsInZhbHVlIikpe2lmKCgwLGkubGUpKHQudmFsdWUpfHx0LnZhbHVlPT09ZC5xU3x8ISgwLGkuSEQpKHQudmFsdWUpJiYhKDAsaS5oaikodC52YWx1ZSkmJiEoMCxpLmpuKSh0LnZhbHVlKSYmISgwLGkua0opKHQudmFsdWUpKXJldHVybiBudWxsfWVsc2UgdD17dmFsdWU6bj9KU09OLnN0cmluZ2lmeSh0KTp0fTtpZigoMCxpLmtKKSh0LnZhbHVlKSYmIXkodC52YWx1ZSkpcmV0dXJuIG51bGw7aWYoISgwLGkubGUpKHQua2luZCkpe2lmKCgwLGkua0opKHQudmFsdWUpfHwhVSh0LmtpbmQpKXJldHVybiBudWxsO3QudmFsdWU9dC52YWx1ZS50b1N0cmluZygpfXJldHVybiB0fWZ1bmN0aW9uIEkoZSx0LG4pe3ZhciByPS0xO2lmKCEoMCxpLm84KShlKSlpZih0PjAmJigzMj09PXQ/cj04MTkyOnQ8PTEzJiYocj10PDw1KSksZnVuY3Rpb24oZSl7aWYoZT49MCYmZTw9OSlyZXR1cm4hMDtyZXR1cm4hMX0obikpLTE9PT1yJiYocj0wKSxyfD1uO2Vsc2V7dmFyIG89cFt3KGUpXXx8LTE7LTEhPT1yJiYtMSE9PW8/cnw9bzo2PT09byYmKHI9byl9cmV0dXJuIHJ9ZnVuY3Rpb24gQShlLHQsbil7dmFyIHI7cmV0dXJuIHZvaWQgMD09PW4mJihuPSEwKSxlJiYocj1lLmdldCh0KSxuJiZyJiZkZWNvZGVVUklDb21wb25lbnQmJihyPWRlY29kZVVSSUNvbXBvbmVudChyKSkpLHJ8fGQucVN9ZnVuY3Rpb24gZyhlKXt2b2lkIDA9PT1lJiYoZT0iRCIpO3ZhciB0PSgwLHMuR1cpKCk7cmV0dXJuIkIiPT09ZT90PSJ7Iit0KyJ9IjoiUCI9PT1lP3Q9IigiK3QrIikiOiJOIj09PWUmJih0PXQucmVwbGFjZSgvLS9nLGQucVMpKSx0fWZ1bmN0aW9uIFIoZSx0LG4scixvKXt2YXIgYT17fSxzPSExLHU9MCxsPWFyZ3VtZW50cy5sZW5ndGgsSD1PYmplY3RbYy5oQl0sZD1hcmd1bWVudHM7Zm9yKCJbb2JqZWN0IEJvb2xlYW5dIj09PUgudG9TdHJpbmcuY2FsbChkWzBdKSYmKHM9ZFswXSx1KyspO3U8bDt1Kyspe2U9ZFt1XTsoMCxpLnJXKShlLChmdW5jdGlvbihlLHQpe3MmJnQmJigwLGkuS24pKHQpPygwLGkua0opKHQpPyhhW2VdPWFbZV18fFtdLCgwLGkudE8pKHQsKGZ1bmN0aW9uKHQsbil7dCYmKDAsaS5LbikodCk/YVtlXVtuXT1SKCEwLGFbZV1bbl0sdCk6YVtlXVtuXT10fSkpKTphW2VdPVIoITAsYVtlXSx0KTphW2VdPXR9KSl9cmV0dXJuIGF9dmFyIE49cy5KajtmdW5jdGlvbiBVKGUpe3JldHVybiAwPT09ZXx8ZT4wJiZlPD0xM3x8MzI9PT1lfWZ1bmN0aW9uIHkoZSl7cmV0dXJuIGUubGVuZ3RoPjB9ZnVuY3Rpb24gSyhlLHQpe3ZhciBuPWU7bi50aW1pbmdzPW4udGltaW5nc3x8e30sbi50aW1pbmdzLnByb2Nlc3NUZWxlbWV0cnlTdGFydD1uLnRpbWluZ3MucHJvY2Vzc1RlbGVtZXRyeVN0YXJ0fHx7fSxuLnRpbWluZ3MucHJvY2Vzc1RlbGVtZXRyeVN0YXJ0W3RdPU4oKX1mdW5jdGlvbiB3KGUpe3ZhciB0PTA7aWYobnVsbCE9ZSl7dmFyIG49dHlwZW9mIGU7InN0cmluZyI9PT1uP3Q9MToibnVtYmVyIj09PW4/dD0yOiJib29sZWFuIj09PW4/dD0zOm49PT1jLmZLJiYodD00LCgwLGkua0opKGUpPyh0PTQwOTYsZS5sZW5ndGg+MCYmKHR8PXcoZVswXSkpKTpjLkNZLmNhbGwoZSwidmFsdWUiKSYmKHQ9ODE5Mnx3KGUudmFsdWUpKSl9cmV0dXJuIHR9Yy5qQSxjLmZLLGMuakEsaS50TyxpLlVBLGkuTXIsaS5YeixpLkZZLGkuWTYsby5iJCxpLkhELGkuaGosaS5qbixpLm1mLGkua0osaS5LbixpLm5kLG8uTUYsaS5ZNixvLmNwLGEucDcsYS5VWSxpLmxfLHUuYzksdS5JYixpLklkLGkuclcsaS5ZbSxpLm84LGkubGUsaS5ucixpLm1mLGkuS24saS5KXyxpLmtKLGkuVlosaS5IRCxpLmhqLGkuam4saS5ZNixpLnRPLGkuVUEsaS5NcixpLlh6LGkubmQsSC5wdSxpLkZZLGkubF8sdS5JYixpLm02LG8udzEscy5HVyxzLkpqLGwucFosbC5heixsLl9sLGwuQ04sbC5GNixzLkRPO2Z1bmN0aW9uIGIoKXtyZXR1cm4hISgwLG8uYTgpKCJjaHJvbWUiKX1mdW5jdGlvbiBQKGUsdCxuLHIsbyxpKXtmdW5jdGlvbiBhKGUsdCxuKXt0cnl7ZVt0XT1ufWNhdGNoKGUpe319dm9pZCAwPT09ciYmKHI9ITEpLHZvaWQgMD09PW8mJihvPSExKTt2YXIgcz1uZXcgWE1MSHR0cFJlcXVlc3Q7cmV0dXJuIHImJmEocywiTWljcm9zb2Z0X0FwcGxpY2F0aW9uSW5zaWdodHNfQnlwYXNzQWpheEluc3RydW1lbnRhdGlvbiIsciksbiYmYShzLFMsbikscy5vcGVuKGUsdCwhbyksbiYmYShzLFMsbiksIW8mJmkmJmEocywidGltZW91dCIsaSksc319LDk4MDM3OihlLHQsbik9PnsidXNlIHN0cmljdCI7bi5kKHQse2UyOigpPT5pLGplOigpPT5vLG93OigpPT5yfSk7dmFyIHI9IlJFQUxfVElNRSIsbz0iTkVBUl9SRUFMX1RJTUUiLGk9IkJFU1RfRUZGT1JUIn0sMTAyNDA0OihlLHQsbik9PnsidXNlIHN0cmljdCI7bi5kKHQse1o6KCk9PmFlfSk7dmFyIHI9bigzNDUzNjIpLG89big5MjM4MDYpLGk9bigzMTcxNDApLGE9big3MDYwMzgpLHM9bigyMzU2MiksYz1uKDY5MTI1NCksdT1uKDkyOTU0MSksbD1uKDgwMzE0NSksSD0oMCxuKDQ4NTM2MikuQnkpKHtVbmtub3duOjAsTm9uUmV0cnlhYmxlU3RhdHVzOjEsSW52YWxpZEV2ZW50OjIsU2l6ZUxpbWl0RXhjZWVkZWQ6MyxLaWxsU3dpdGNoOjQsUXVldWVGdWxsOjV9KSxkPW4oNjYyMzcyKSxmPW4oNzY2ODY0KSxTPW4oOTgwMzcpLHA9IiIsQz0iUE9TVCIsdj0iZHJvcCIsaD0ic2VuZCIsbT0icmVxdWV1ZSIsST0icnNwRmFpbCIsQT0iYXBwbGljYXRpb24veC1qc29uLXN0cmVhbSIsZz0iY2FjaGUtY29udHJvbCIsUj0iY29udGVudC10eXBlIixOPSJraWxsLWR1cmF0aW9uIixVPSJ0aW1lLWRlbHRhLW1pbGxpcyIseT0iY2xpZW50LXZlcnNpb24iLEs9ImNsaWVudC1pZCIsdz0idGltZS1kZWx0YS10by1hcHBseS1taWxsaXMiLGI9InVwbG9hZC10aW1lIixQPSJhcGlrZXkiLGs9IkF1dGhNc2FEZXZpY2VUaWNrZXQiLEU9IkF1dGhYVG9rZW4iO2Z1bmN0aW9uIE8oZSl7dmFyIHQ9KGUuZXh0fHx7fSkuaW50d2ViO3JldHVybiB0JiYoMCxjLlNuKSh0Lm1zZnBjKT90Lm1zZnBjOm51bGx9ZnVuY3Rpb24gVChlKXtmb3IodmFyIHQ9bnVsbCxuPTA7bnVsbD09PXQmJm48ZS5sZW5ndGg7bisrKXQ9TyhlW25dKTtyZXR1cm4gdH12YXIgeD1mdW5jdGlvbigpe2Z1bmN0aW9uIGUodCxuKXt2YXIgcj1uP1tdLmNvbmNhdChuKTpbXSxvPXRoaXMsaT1UKHIpO28uaUtleT1mdW5jdGlvbigpe3JldHVybiB0fSxvLk1zZnBjPWZ1bmN0aW9uKCl7cmV0dXJuIGl8fHB9LG8uY291bnQ9ZnVuY3Rpb24oKXtyZXR1cm4gci5sZW5ndGh9LG8uZXZlbnRzPWZ1bmN0aW9uKCl7cmV0dXJuIHJ9LG8uYWRkRXZlbnQ9ZnVuY3Rpb24oZSl7cmV0dXJuISFlJiYoci5wdXNoKGUpLGl8fChpPU8oZSkpLCEwKX0sby5zcGxpdD1mdW5jdGlvbihuLG8pe3ZhciBhO2lmKG48ci5sZW5ndGgpe3ZhciBzPXIubGVuZ3RoLW47KDAsdS5sZSkobyl8fChzPW88cz9vOnMpLGE9ci5zcGxpY2UobixzKSxpPVQocil9cmV0dXJuIG5ldyBlKHQsYSl9fXJldHVybiBlLmNyZWF0ZT1mdW5jdGlvbih0LG4pe3JldHVybiBuZXcgZSh0LG4pfSxlfSgpO2NvbnN0IEQ9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKCl7dmFyIHQ9ITAsbj0hMCxyPSEwLGk9InVzZS1jb2xsZWN0b3ItZGVsdGEiLGE9ITE7KDAsby5aKShlLHRoaXMsKGZ1bmN0aW9uKGUpe2UuYWxsb3dSZXF1ZXN0U2VuZGluZz1mdW5jdGlvbigpe3JldHVybiB0fSxlLmZpcnN0UmVxdWVzdFNlbnQ9ZnVuY3Rpb24oKXtyJiYocj0hMSxhfHwodD0hMSkpfSxlLnNob3VsZEFkZENsb2NrU2tld0hlYWRlcnM9ZnVuY3Rpb24oKXtyZXR1cm4gbn0sZS5nZXRDbG9ja1NrZXdIZWFkZXJWYWx1ZT1mdW5jdGlvbigpe3JldHVybiBpfSxlLnNldENsb2NrU2tldz1mdW5jdGlvbihlKXthfHwoZT8oaT1lLG49ITAsYT0hMCk6bj0hMSx0PSEwKX19KSl9cmV0dXJuIGUuX19pZUR5bj0xLGV9KCk7Y29uc3QgTT1mdW5jdGlvbigpe2Z1bmN0aW9uIGUoKXt2YXIgdD17fTsoMCxvLlopKGUsdGhpcywoZnVuY3Rpb24oZSl7ZS5zZXRLaWxsU3dpdGNoVGVuYW50cz1mdW5jdGlvbihlLG4pe2lmKGUmJm4pdHJ5e3ZhciByPShhPWUuc3BsaXQoIiwiKSxzPVtdLGEmJigwLHUudE8pKGEsKGZ1bmN0aW9uKGUpe3MucHVzaCgoMCx1Lm5kKShlKSl9KSkscyk7aWYoInRoaXMtcmVxdWVzdC1vbmx5Ij09PW4pcmV0dXJuIHI7Zm9yKHZhciBvPTFlMypwYXJzZUludChuLDEwKSxpPTA7aTxyLmxlbmd0aDsrK2kpdFtyW2ldXT0oMCx1Lm02KSgpK299Y2F0Y2goZSl7cmV0dXJuW119dmFyIGEscztyZXR1cm5bXX0sZS5pc1RlbmFudEtpbGxlZD1mdW5jdGlvbihlKXt2YXIgbj10LHI9KDAsdS5uZCkoZSk7cmV0dXJuIHZvaWQgMCE9PW5bcl0mJm5bcl0+KDAsdS5tNikoKXx8KGRlbGV0ZSBuW3JdLCExKX19KSl9cmV0dXJuIGUuX19pZUR5bj0xLGV9KCk7dmFyIEI9bigyMjE5MDgpO2Z1bmN0aW9uIEYoZSl7dmFyIHQsbj1NYXRoLmZsb29yKDEyMDAqTWF0aC5yYW5kb20oKSkrMjQwMDtyZXR1cm4gdD1NYXRoLnBvdygyLGUpKm4sTWF0aC5taW4odCw2ZTUpfXZhciBMLFY9MmU2LFc9TWF0aC5taW4oViw2NWUzKSxqPS9cLi8sSj1mdW5jdGlvbigpe2Z1bmN0aW9uIGUodCxuLHIsYSl7dmFyIHM9ImRhdGEiLGw9ImJhc2VEYXRhIixIPSEhYSxkPW4sZj17fTsoMCxvLlopKGUsdGhpcywoZnVuY3Rpb24oZSl7ZnVuY3Rpb24gbihlLHQsbyxpLGEscyxsKXsoMCx1LnJXKShlLChmdW5jdGlvbihlLFMpe3ZhciBwPW51bGw7aWYoU3x8KDAsYy5TbikoUykpe3ZhciBDPW8sdj1lLGg9YSxtPXQ7aWYoSCYmIWkmJmoudGVzdChlKSl7dmFyIEk9ZS5zcGxpdCgiLiIpLEE9SS5sZW5ndGg7aWYoQT4xKXtoJiYoaD1oLnNsaWNlKCkpO2Zvcih2YXIgZz0wO2c8QS0xO2crKyl7dmFyIFI9SVtnXTttPW1bUl09bVtSXXx8e30sQys9Ii4iK1IsaCYmaC5wdXNoKFIpfXY9SVtBLTFdfX12YXIgTj1pJiZmdW5jdGlvbihlLHQpe3ZhciBuPWZbZV07cmV0dXJuIHZvaWQgMD09PW4mJihlLmxlbmd0aD49NyYmKG49KDAsdS54ZSkoZSwiZXh0Lm1ldGFkYXRhIil8fCgwLHUueGUpKGUsImV4dC53ZWIiKSksZltlXT1uKSxufShDKTtpZihwPSFOJiZkJiZkLmhhbmRsZUZpZWxkKEMsdik/ZC52YWx1ZShDLHYsUyxyKTooMCxjLnlqKSh2LFMscikpe3ZhciBVPXAudmFsdWU7aWYobVt2XT1VLHMmJnMoaCx2LHApLGwmJiJvYmplY3QiPT10eXBlb2YgVSYmISgwLHUua0opKFUpKXt2YXIgeT1oO3kmJih5PXkuc2xpY2UoKSkucHVzaCh2KSxuKFMsVSxDKyIuIit2LGkseSxzLGwpfX19fSkpfWUuY3JlYXRlUGF5bG9hZD1mdW5jdGlvbihlLHQsbixyLG8saSl7cmV0dXJue2FwaUtleXM6W10scGF5bG9hZEJsb2I6cCxvdmVyZmxvdzpudWxsLHNpemVFeGNlZWQ6W10sZmFpbGVkRXZ0czpbXSxiYXRjaGVzOltdLG51bUV2ZW50czowLHJldHJ5Q250OmUsaXNUZWFyZG93bjp0LGlzU3luYzpuLGlzQmVhY29uOnIsc2VuZFR5cGU6aSxzZW5kUmVhc29uOm99fSxlLmFwcGVuZFBheWxvYWQ9ZnVuY3Rpb24obixyLG8pe3ZhciBhPW4mJnImJiFuLm92ZXJmbG93O3JldHVybiBhJiYoMCxpLkxtKSh0LChmdW5jdGlvbigpe3JldHVybiJTZXJpYWxpemVyOmFwcGVuZFBheWxvYWQifSksKGZ1bmN0aW9uKCl7Zm9yKHZhciB0PXIuZXZlbnRzKCksaT1uLnBheWxvYWRCbG9iLGE9bi5udW1FdmVudHMscz0hMSxjPVtdLGw9W10sSD1uLmlzQmVhY29uLGQ9SD82NWUzOjM5ODQ1ODgsZj1IP1c6VixTPTAscD0wO1M8dC5sZW5ndGg7KXt2YXIgQz10W1NdO2lmKEMpe2lmKGE+PW8pe24ub3ZlcmZsb3c9ci5zcGxpdChTKTticmVha312YXIgdj1lLmdldEV2ZW50QmxvYihDKTtpZih2JiZ2Lmxlbmd0aDw9Zil7dmFyIGg9di5sZW5ndGg7aWYoaS5sZW5ndGgraD5kKXtuLm92ZXJmbG93PXIuc3BsaXQoUyk7YnJlYWt9aSYmKGkrPSJcbiIpLGkrPXYsKytwPjIwJiYoaS5zdWJzdHIoMCwxKSxwPTApLHM9ITAsYSsrfWVsc2Ugdj9jLnB1c2goQyk6bC5wdXNoKEMpLHQuc3BsaWNlKFMsMSksUy0tfVMrK31pZihjJiZjLmxlbmd0aD4wJiZuLnNpemVFeGNlZWQucHVzaCh4LmNyZWF0ZShyLmlLZXkoKSxjKSksbCYmbC5sZW5ndGg+MCYmbi5mYWlsZWRFdnRzLnB1c2goeC5jcmVhdGUoci5pS2V5KCksbCkpLHMpe24uYmF0Y2hlcy5wdXNoKHIpLG4ucGF5bG9hZEJsb2I9aSxuLm51bUV2ZW50cz1hO3ZhciBtPXIuaUtleSgpOy0xPT09KDAsdS5VQSkobi5hcGlLZXlzLG0pJiZuLmFwaUtleXMucHVzaChtKX19KSwoZnVuY3Rpb24oKXtyZXR1cm57cGF5bG9hZDpuLHRoZUJhdGNoOntpS2V5OnIuaUtleSgpLGV2dHM6ci5ldmVudHMoKX0sbWF4Om99fSkpLGF9LGUuZ2V0RXZlbnRCbG9iPWZ1bmN0aW9uKGUpe3RyeXtyZXR1cm4oMCxpLkxtKSh0LChmdW5jdGlvbigpe3JldHVybiJTZXJpYWxpemVyLmdldEV2ZW50QmxvYiJ9KSwoZnVuY3Rpb24oKXt2YXIgdD17fTt0Lm5hbWU9ZS5uYW1lLHQudGltZT1lLnRpbWUsdC52ZXI9ZS52ZXIsdC5pS2V5PSJvOiIrKDAsYy5qTSkoZS5pS2V5KTt2YXIgcj17fSxvPWUuZXh0O28mJih0LmV4dD1yLCgwLHUuclcpKG8sKGZ1bmN0aW9uKGUsdCl7bih0LHJbZV09e30sImV4dC4iK2UsITAsbnVsbCxudWxsLCEwKX0pKSk7dmFyIGk9dC5kYXRhPXt9O2kuYmFzZVR5cGU9ZS5iYXNlVHlwZTt2YXIgYT1pLmJhc2VEYXRhPXt9O3JldHVybiBuKGUuYmFzZURhdGEsYSxsLCExLFtsXSwoZnVuY3Rpb24oZSx0LG4pe3EocixlLHQsbil9KSx0cnVlKSxuKGUuZGF0YSxpLHMsITEsW10sKGZ1bmN0aW9uKGUsdCxuKXtxKHIsZSx0LG4pfSksdHJ1ZSksSlNPTi5zdHJpbmdpZnkodCl9KSwoZnVuY3Rpb24oKXtyZXR1cm57aXRlbTplfX0pKX1jYXRjaChlKXtyZXR1cm4gbnVsbH19fSkpfXJldHVybiBlLl9faWVEeW49MSxlfSgpO2Z1bmN0aW9uIHEoZSx0LG4scil7aWYociYmZSl7dmFyIG89KDAsYy5Wdikoci52YWx1ZSxyLmtpbmQsci5wcm9wZXJ0eVR5cGUpO2lmKG8+LTEpe3ZhciBpPWUubWV0YWRhdGE7aXx8KGk9ZS5tZXRhZGF0YT17Zjp7fX0pO3ZhciBhPWkuZjtpZihhfHwoYT1pLmY9e30pLHQpZm9yKHZhciBzPTA7czx0Lmxlbmd0aDtzKyspe3ZhciBsPXRbc107YVtsXXx8KGFbbF09e2Y6e319KTt2YXIgSD1hW2xdLmY7SHx8KEg9YVtsXS5mPXt9KSxhPUh9YT1hW25dPXt9LCgwLHUua0opKHIudmFsdWUpP2EuYT17dDpvfTphLnQ9b319fXZhciBaPSImTm9SZXNwb25zZUJvZHk9dHJ1ZSIsej0oKEw9e30pWzFdPW0sTFsxMDBdPW0sTFsyMDBdPSJzZW50IixMWzgwMDRdPXYsTFs4MDAzXT12LEwpLEc9e30sWT17fTtmdW5jdGlvbiBRKGUsdCxuKXtHW2VdPXQsITEhPT1uJiYoWVt0XT1lKX1mdW5jdGlvbiBYKGUpe3RyeXtyZXR1cm4gZS5yZXNwb25zZVRleHR9Y2F0Y2goZSl7fXJldHVybiBwfWZ1bmN0aW9uIF8oZSx0KXt2YXIgbj0hMTtpZihlJiZ0KXt2YXIgcj0oMCx1LkZZKShlKTtpZihyJiZyLmxlbmd0aD4wKWZvcih2YXIgbz10LnRvTG93ZXJDYXNlKCksaT0wO2k8ci5sZW5ndGg7aSsrKXt2YXIgYT1yW2ldO2lmKGEmJigwLHUubnIpKHQsYSkmJmEudG9Mb3dlckNhc2UoKT09PW8pe249ITA7YnJlYWt9fX1yZXR1cm4gbn1mdW5jdGlvbiAkKGUsdCxuLHIpe3QmJm4mJm4ubGVuZ3RoPjAmJihyJiZHW3RdPyhlLmhkcnNbR1t0XV09bixlLnVzZUhkcnM9ITApOmUudXJsKz0iJiIrdCsiPSIrbil9ZnVuY3Rpb24gZWUoZSx0KXtyZXR1cm4gdCYmKCgwLHUuaGopKHQpP2U9W3RdLmNvbmNhdChlKTooMCx1LmtKKSh0KSYmKGU9dC5jb25jYXQoZSkpKSxlfVEoayxrLCExKSxRKHkseSksUShLLCJDbGllbnQtSWQiKSxRKFAsUCksUSh3LHcpLFEoYixiKSxRKEUsRSk7dmFyIHRlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSh0LG4scixhLHMpe3RoaXMuX3Jlc3BvbnNlSGFuZGxlcnM9W107dmFyIEgsZixTLG0sayxFLE8sVCx4LEwsVj0iP2NvcnM9dHJ1ZSYiK1IudG9Mb3dlckNhc2UoKSsiPSIrQSxXPW5ldyBNLGo9ITEscT1uZXcgRCxHPSExLFE9MCx0ZT0hMCxuZT1bXSxyZT17fSxvZT1bXSxpZT1udWxsLGFlPSExLHNlPSExLGNlPSExOygwLG8uWikoZSx0aGlzLChmdW5jdGlvbihlKXt2YXIgbz0hMDtmdW5jdGlvbiBEKGUsdCl7Zm9yKHZhciBuPTAscj1udWxsLG89MDtudWxsPT1yJiZvPGUubGVuZ3RoOykxPT09KG49ZVtvXSk/KDAsbC5jcCkoKT9yPU06KDAsbC5aMykoKSYmKHI9bGUpOjI9PT1uJiYoMCxsLkpPKSh0KSYmKCF0fHx0JiYhVCk/cj11ZTpHJiYzPT09biYmKDAsbC5NRikoKSYmKHI9ZGUpLG8rKztyZXR1cm4gcj97X3RyYW5zcG9ydDpuLF9pc1N5bmM6dCxzZW5kUE9TVDpyfTpudWxsfWZ1bmN0aW9uIE0oZSx0LG4pe3ZhciByPW5ldyBYRG9tYWluUmVxdWVzdDtyLm9wZW4oQyxlLnVybFN0cmluZyksZS50aW1lb3V0JiYoci50aW1lb3V0PWUudGltZW91dCksci5vbmxvYWQ9ZnVuY3Rpb24oKXt2YXIgZT1YKHIpO0hlKHQsMjAwLHt9LGUpLE5lKGUpfSxyLm9uZXJyb3I9ZnVuY3Rpb24oKXtIZSh0LDQwMCx7fSl9LHIub250aW1lb3V0PWZ1bmN0aW9uKCl7SGUodCw1MDAse30pfSxyLm9ucHJvZ3Jlc3M9ZnVuY3Rpb24oKXt9LG4/ci5zZW5kKGUuZGF0YSk6cy5zZXQoKGZ1bmN0aW9uKCl7ci5zZW5kKGUuZGF0YSl9KSwwKX1mdW5jdGlvbiB1ZShlLHQsbil7dmFyIHIsaT1lLnVybFN0cmluZyxhPSExLGM9ITEsbD0oKHI9e2JvZHk6ZS5kYXRhLG1ldGhvZDpDfSkuTWljcm9zb2Z0X0FwcGxpY2F0aW9uSW5zaWdodHNfQnlwYXNzQWpheEluc3RydW1lbnRhdGlvbj0hMCxyKTtuJiYobC5rZWVwYWxpdmU9ITAsMj09PWUuX3NlbmRSZWFzb24mJihhPSEwLEwmJihpKz1aKSkpLG8mJihsLmNyZWRlbnRpYWxzPSJpbmNsdWRlIiksZS5oZWFkZXJzJiYoMCx1LkZZKShlLmhlYWRlcnMpLmxlbmd0aD4wJiYobC5oZWFkZXJzPWUuaGVhZGVycyksZmV0Y2goaSxsKS50aGVuKChmdW5jdGlvbihlKXt2YXIgbj17fSxyPXAsbz1lLmhlYWRlcnM7byYmby5mb3JFYWNoKChmdW5jdGlvbihlLHQpe25bdF09ZX0pKSxlLmJvZHkmJmUudGV4dCgpLnRoZW4oKGZ1bmN0aW9uKGUpe3I9ZX0pKSxjfHwoYz0hMCxIZSh0LGUuc3RhdHVzLG4sciksTmUocikpfSkpLmNhdGNoKChmdW5jdGlvbihlKXtjfHwoYz0hMCxIZSh0LDAse30pKX0pKSxhJiYhYyYmKGM9ITAsSGUodCwyMDAse30pKSwhYyYmZS50aW1lb3V0PjAmJnMuc2V0KChmdW5jdGlvbigpe2N8fChjPSEwLEhlKHQsNTAwLHt9KSl9KSxlLnRpbWVvdXQpfWZ1bmN0aW9uIGxlKGUsdCxuKXt2YXIgcj1lLnVybFN0cmluZztmdW5jdGlvbiBpKGUsdCxuKXtpZighZVtuXSYmdCYmdC5nZXRSZXNwb25zZUhlYWRlcil7dmFyIHI9dC5nZXRSZXNwb25zZUhlYWRlcihuKTtyJiYoZVtuXT0oMCx1Lm5kKShyKSl9cmV0dXJuIGV9ZnVuY3Rpb24gYShlKXt2YXIgdD17fTtyZXR1cm4gZS5nZXRBbGxSZXNwb25zZUhlYWRlcnM/dD1mdW5jdGlvbihlKXt2YXIgdD17fTtpZigoMCx1LkhEKShlKSl7dmFyIG49KDAsdS5uZCkoZSkuc3BsaXQoL1tcclxuXSsvKTsoMCx1LnRPKShuLChmdW5jdGlvbihlKXtpZihlKXt2YXIgbj1lLmluZGV4T2YoIjogIik7aWYoLTEhPT1uKXt2YXIgcj0oMCx1Lm5kKShlLnN1YnN0cmluZygwLG4pKS50b0xvd2VyQ2FzZSgpLG89KDAsdS5uZCkoZS5zdWJzdHJpbmcobisxKSk7dFtyXT1vfWVsc2UgdFsoMCx1Lm5kKShlKV09MX19KSl9cmV0dXJuIHR9KGUuZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKCkpOih0PWkodCxlLFUpLHQ9aSh0LGUsTiksdD1pKHQsZSwia2lsbC1kdXJhdGlvbi1zZWNvbmRzIikpLHR9ZnVuY3Rpb24gcyhlLG4pe0hlKHQsZS5zdGF0dXMsYShlKSxuKX1uJiZlLmRpc2FibGVYaHJTeW5jJiYobj0hMSk7dmFyIGw9KDAsYy5vdCkoQyxyLG8sITAsbixlLnRpbWVvdXQpOygwLHUuclcpKGUuaGVhZGVycywoZnVuY3Rpb24oZSx0KXtsLnNldFJlcXVlc3RIZWFkZXIoZSx0KX0pKSxsLm9ubG9hZD1mdW5jdGlvbigpe3ZhciBlPVgobCk7cyhsLGUpLE5lKGUpfSxsLm9uZXJyb3I9ZnVuY3Rpb24oKXtzKGwpfSxsLm9udGltZW91dD1mdW5jdGlvbigpe3MobCl9LGwuc2VuZChlLmRhdGEpfWZ1bmN0aW9uIEhlKGUsdCxuLHIpe3RyeXtlKHQsbixyKX1jYXRjaChlKXsoMCxkLmtQKShmLDIsNTE4LCgwLGwuZVUpKGUpKX19ZnVuY3Rpb24gZGUoZSx0LG4pe3ZhciByPTIwMCxvPWUuX3RoZVBheWxvYWQsaT1lLnVybFN0cmluZysoTD9aOnApO3RyeXt2YXIgYT0oMCxsLmpXKSgpO2lmKCFhLnNlbmRCZWFjb24oaSxlLmRhdGEpKWlmKG8pe3ZhciBzPVtdOygwLHUudE8pKG8uYmF0Y2hlcywoZnVuY3Rpb24oZSl7aWYocyYmZSYmZS5jb3VudCgpPjApe2Zvcih2YXIgdD1lLmV2ZW50cygpLG49MDtuPHQubGVuZ3RoO24rKylpZighYS5zZW5kQmVhY29uKGksaWUuZ2V0RXZlbnRCbG9iKHRbbl0pKSl7cy5wdXNoKGUuc3BsaXQobikpO2JyZWFrfX1lbHNlIHMucHVzaChlLnNwbGl0KDApKX0pKSxVZShzLDgwMDMsby5zZW5kVHlwZSwhMCl9ZWxzZSByPTB9Y2F0Y2goZSl7KDAsZC5qVikoZiwiRmFpbGVkIHRvIHNlbmQgdGVsZW1ldHJ5IHVzaW5nIHNlbmRCZWFjb24gQVBJLiBFeDoiKygwLGwuZVUpKGUpKSxyPTB9ZmluYWxseXtIZSh0LHIse30scCl9fWZ1bmN0aW9uIGZlKGUpe3JldHVybiAyPT09ZXx8Mz09PWV9ZnVuY3Rpb24gU2UoZSl7cmV0dXJuIHNlJiZmZShlKSYmKGU9MiksZX1mdW5jdGlvbiBwZSgpe3JldHVybiFqJiZRPG59ZnVuY3Rpb24gQ2UoKXt2YXIgZT1vZTtyZXR1cm4gb2U9W10sZX1mdW5jdGlvbiB2ZShlLHQsbil7dmFyIHI9ITE7cmV0dXJuIGUmJmUubGVuZ3RoPjAmJiFqJiZTW3RdJiZpZSYmKHI9MCE9PXR8fHBlKCkmJihuPjB8fHEuYWxsb3dSZXF1ZXN0U2VuZGluZygpKSkscn1mdW5jdGlvbiBoZShlKXt2YXIgdD17fTtyZXR1cm4gZSYmKDAsdS50TykoZSwoZnVuY3Rpb24oZSxuKXt0W25dPXtpS2V5OmUuaUtleSgpLGV2dHM6ZS5ldmVudHMoKX19KSksdH1mdW5jdGlvbiBtZShlLG4scixvLGEpe2lmKGUmJjAhPT1lLmxlbmd0aClpZihqKVVlKGUsMSxvKTtlbHNle289U2Uobyk7dHJ5e3ZhciBzPWUsdT0wIT09bzsoMCxpLkxtKShtLChmdW5jdGlvbigpe3JldHVybiJIdHRwTWFuYWdlcjpfc2VuZEJhdGNoZXMifSksKGZ1bmN0aW9uKGkpe2kmJihlPWUuc2xpY2UoMCkpO2Zvcih2YXIgcz1bXSxsPW51bGwsSD0oMCxjLmhLKSgpLGQ9U1tvXXx8KHU/U1sxXTpTWzBdKSxmPWQmJmQuX3RyYW5zcG9ydCxwPXgmJihzZXx8ZmUobyl8fDM9PT1mfHxkLl9pc1N5bmMmJjI9PT1mKTt2ZShlLG8sbik7KXt2YXIgQz1lLnNoaWZ0KCk7QyYmQy5jb3VudCgpPjAmJihXLmlzVGVuYW50S2lsbGVkKEMuaUtleSgpKT9zLnB1c2goQyk6KGw9bHx8aWUuY3JlYXRlUGF5bG9hZChuLHIsdSxwLGEsbyksaWUuYXBwZW5kUGF5bG9hZChsLEMsdCk/bnVsbCE9PWwub3ZlcmZsb3cmJihlPVtsLm92ZXJmbG93XS5jb25jYXQoZSksbC5vdmVyZmxvdz1udWxsLGdlKGwsSCwoMCxjLmhLKSgpLGEpLEg9KDAsYy5oSykoKSxsPW51bGwpOihnZShsLEgsKDAsYy5oSykoKSxhKSxIPSgwLGMuaEspKCksZT1bQ10uY29uY2F0KGUpLGw9bnVsbCkpKX1sJiZnZShsLEgsKDAsYy5oSykoKSxhKSxlLmxlbmd0aD4wJiYob2U9ZS5jb25jYXQob2UpKSxVZShzLDgwMDQsbyl9KSwoZnVuY3Rpb24oKXtyZXR1cm57YmF0Y2hlczpoZShzKSxyZXRyeUNvdW50Om4saXNUZWFyZG93bjpyLGlzU3luY2hyb25vdXM6dSxzZW5kUmVhc29uOmEsdXNlU2VuZEJlYWNvbjpmZShvKSxzZW5kVHlwZTpvfX0pLCF1KX1jYXRjaChlKXsoMCxkLmtQKShmLDIsNDgsIlVuZXhwZWN0ZWQgRXhjZXB0aW9uIHNlbmRpbmcgYmF0Y2g6ICIrKDAsbC5lVSkoZSkpfX19ZnVuY3Rpb24gSWUoZSx0KXt2YXIgbj17dXJsOlYsaGRyczp7fSx1c2VIZHJzOiExfTt0PyhuLmhkcnM9KDAsYy5sNykobi5oZHJzLHJlKSxuLnVzZUhkcnM9KDAsdS5GWSkobi5oZHJzKS5sZW5ndGg+MCk6KDAsdS5yVykocmUsKGZ1bmN0aW9uKGUsdCl7WVtlXT8kKG4sWVtlXSx0LCExKToobi5oZHJzW2VdPXQsbi51c2VIZHJzPSEwKX0pKSwkKG4sSywiTk9fQVVUSCIsdCksJChuLHksYy52cyx0KTt2YXIgcj1wOygwLHUudE8pKGUuYXBpS2V5cywoZnVuY3Rpb24oZSl7ci5sZW5ndGg+MCYmKHIrPSIsIikscis9ZX0pKSwkKG4sUCxyLHQpLCQobixiLCgwLHUubTYpKCkudG9TdHJpbmcoKSx0KTt2YXIgbz1mdW5jdGlvbihlKXtmb3IodmFyIHQ9MDt0PGUuYmF0Y2hlcy5sZW5ndGg7dCsrKXt2YXIgbj1lLmJhdGNoZXNbdF0uTXNmcGMoKTtpZihuKXJldHVybiBlbmNvZGVVUklDb21wb25lbnQobil9cmV0dXJuIHB9KGUpO2lmKCgwLGMuU24pKG8pJiYobi51cmwrPSImZXh0LmludHdlYi5tc2ZwYz0iK28pLHEuc2hvdWxkQWRkQ2xvY2tTa2V3SGVhZGVycygpJiYkKG4sdyxxLmdldENsb2NrU2tld0hlYWRlclZhbHVlKCksdCksbS5nZXRXUGFyYW0pe3ZhciBpPW0uZ2V0V1BhcmFtKCk7aT49MCYmKG4udXJsKz0iJnc9IitpKX1mb3IodmFyIGE9MDthPG5lLmxlbmd0aDthKyspbi51cmwrPSImIituZVthXS5uYW1lKyI9IituZVthXS52YWx1ZTtyZXR1cm4gbn1mdW5jdGlvbiBBZShlLHQsbil7ZVt0XT1lW3RdfHx7fSxlW3RdW0guaWRlbnRpZmllcl09bn1mdW5jdGlvbiBnZSh0LG4sbyxhKXtpZih0JiZ0LnBheWxvYWRCbG9iJiZ0LnBheWxvYWRCbG9iLmxlbmd0aD4wKXt2YXIgcz0hIWUuc2VuZEhvb2sscD1TW3Quc2VuZFR5cGVdOyFmZSh0LnNlbmRUeXBlKSYmdC5pc0JlYWNvbiYmMj09PXQuc2VuZFJlYXNvbiYmKHA9U1syXXx8U1szXXx8cCk7dmFyIEM9Y2U7KHQuaXNCZWFjb258fDM9PT1wLl90cmFuc3BvcnQpJiYoQz0hMSk7dmFyIHY9SWUodCxDKTtDPUN8fHYudXNlSGRyczt2YXIgaD0oMCxjLmhLKSgpOygwLGkuTG0pKG0sKGZ1bmN0aW9uKCl7cmV0dXJuIkh0dHBNYW5hZ2VyOl9kb1BheWxvYWRTZW5kIn0pLChmdW5jdGlvbigpe2Zvcih2YXIgUz0wO1M8dC5iYXRjaGVzLmxlbmd0aDtTKyspZm9yKHZhciBJPXQuYmF0Y2hlc1tTXS5ldmVudHMoKSxOPTA7TjxJLmxlbmd0aDtOKyspe3ZhciBVPUlbTl07aWYoYWUpe3ZhciB5PVUudGltaW5ncz1VLnRpbWluZ3N8fHt9O0FlKHksInNlbmRFdmVudFN0YXJ0IixoKSxBZSh5LCJzZXJpYWxpemF0aW9uU3RhcnQiLG4pLEFlKHksInNlcmlhbGl6YXRpb25Db21wbGV0ZWQiLG8pfVUuc2VuZEF0dGVtcHQ+MD9VLnNlbmRBdHRlbXB0Kys6VS5zZW5kQXR0ZW1wdD0xfVVlKHQuYmF0Y2hlcywxZTMrKGF8fDApLHQuc2VuZFR5cGUsITApO3ZhciBLPXtkYXRhOnQucGF5bG9hZEJsb2IsdXJsU3RyaW5nOnYudXJsLGhlYWRlcnM6di5oZHJzLF90aGVQYXlsb2FkOnQsX3NlbmRSZWFzb246YSx0aW1lb3V0OkUsZGlzYWJsZVhoclN5bmM6TyxkaXNhYmxlRmV0Y2hLZWVwQWxpdmU6VH07QyYmKF8oSy5oZWFkZXJzLGcpfHwoSy5oZWFkZXJzWyJjYWNoZS1jb250cm9sIl09Im5vLWNhY2hlLCBuby1zdG9yZSIpLF8oSy5oZWFkZXJzLFIpfHwoSy5oZWFkZXJzWyJjb250ZW50LXR5cGUiXT1BKSk7dmFyIHc9bnVsbDtwJiYodz1mdW5jdGlvbihuKXtxLmZpcnN0UmVxdWVzdFNlbnQoKTt2YXIgbz1mdW5jdGlvbihuLG8peyFmdW5jdGlvbih0LG4sbyxpKXt2YXIgYT05ZTMscz1udWxsLGw9ITEsZD0hMTt0cnl7dmFyIGY9ITA7aWYodHlwZW9mIHQhPT1CLmpBKXtpZihuKXtxLnNldENsb2NrU2tldyhuWyJ0aW1lLWRlbHRhLW1pbGxpcyJdKTt2YXIgUz1uWyJraWxsLWR1cmF0aW9uIl18fG5bImtpbGwtZHVyYXRpb24tc2Vjb25kcyJdOygwLHUudE8pKFcuc2V0S2lsbFN3aXRjaFRlbmFudHMoblsia2lsbC10b2tlbnMiXSxTKSwoZnVuY3Rpb24oZSl7KDAsdS50Tykoby5iYXRjaGVzLChmdW5jdGlvbih0KXtpZih0LmlLZXkoKT09PWUpe3M9c3x8W107dmFyIG49dC5zcGxpdCgwKTtvLm51bUV2ZW50cy09bi5jb3VudCgpLHMucHVzaChuKX19KSl9KSl9aWYoMjAwPT10fHwyMDQ9PXQpcmV0dXJuIHZvaWQoYT0yMDApOygoQz10KT49MzAwJiZDPDUwMCYmNDA4IT1DJiY0MjkhPUN8fDUwMT09Q3x8NTA1PT1DfHxvLm51bUV2ZW50czw9MCkmJihmPSExKSxhPTllMyt0JTFlM31pZihmKXthPTEwMDt2YXIgcD1vLnJldHJ5Q250OzA9PT1vLnNlbmRUeXBlJiYocDxyPyhsPSEwLFJlKChmdW5jdGlvbigpezA9PT1vLnNlbmRUeXBlJiZRLS0sbWUoby5iYXRjaGVzLHArMSxvLmlzVGVhcmRvd24sc2U/MjpvLnNlbmRUeXBlLDUpfSksc2UsRihwKSkpOihkPSEwLHNlJiYoYT04MDAxKSkpfX1maW5hbGx5e2x8fChxLnNldENsb2NrU2tldygpLGZ1bmN0aW9uKHQsbixyLG8pe3RyeXtvJiZILl9iYWNrT2ZmVHJhbnNtaXNzaW9uKCksMjAwPT09biYmKG98fHQuaXNTeW5jfHxILl9jbGVhckJhY2tPZmYoKSxmdW5jdGlvbihlKXtpZihhZSl7dmFyIHQ9KDAsYy5oSykoKTsoMCx1LnRPKShlLChmdW5jdGlvbihlKXtlJiZlLmNvdW50KCk+MCYmZnVuY3Rpb24oZSx0KXthZSYmKDAsdS50TykoZSwoZnVuY3Rpb24oZSl7QWUoZS50aW1pbmdzPWUudGltaW5nc3x8e30sInNlbmRFdmVudENvbXBsZXRlZCIsdCl9KSl9KGUuZXZlbnRzKCksdCl9KSl9fSh0LmJhdGNoZXMpKSxVZSh0LmJhdGNoZXMsbix0LnNlbmRUeXBlLCEwKX1maW5hbGx5ezA9PT10LnNlbmRUeXBlJiYoUS0tLDUhPT1yJiZlLnNlbmRRdWV1ZWRSZXF1ZXN0cyh0LnNlbmRUeXBlLHIpKX19KG8sYSxpLGQpKSxVZShzLDgwMDQsby5zZW5kVHlwZSl9dmFyIEN9KG4sbyx0LGEpfSxpPXQuaXNUZWFyZG93bnx8dC5pc1N5bmM7dHJ5e3Auc2VuZFBPU1QobixvLGkpLGUuc2VuZExpc3RlbmVyJiZlLnNlbmRMaXN0ZW5lcihLLG4saSx0LmlzQmVhY29uKX1jYXRjaChlKXsoMCxkLmpWKShmLCJVbmV4cGVjdGVkIGV4Y2VwdGlvbiBzZW5kaW5nIHBheWxvYWQuIEV4OiIrKDAsbC5lVSkoZSkpLEhlKG8sMCx7fSl9fSksKDAsaS5MbSkobSwoZnVuY3Rpb24oKXtyZXR1cm4iSHR0cE1hbmFnZXI6X2RvUGF5bG9hZFNlbmQuc2VuZGVyIn0pLChmdW5jdGlvbigpe2lmKHcpaWYoMD09PXQuc2VuZFR5cGUmJlErKyxzJiYhdC5pc0JlYWNvbiYmMyE9PXAuX3RyYW5zcG9ydCl7dmFyIG49e2RhdGE6Sy5kYXRhLHVybFN0cmluZzpLLnVybFN0cmluZyxoZWFkZXJzOigwLGMubDcpKHt9LEsuaGVhZGVycyksdGltZW91dDpLLnRpbWVvdXQsZGlzYWJsZVhoclN5bmM6Sy5kaXNhYmxlWGhyU3luYyxkaXNhYmxlRmV0Y2hLZWVwQWxpdmU6Sy5kaXNhYmxlRmV0Y2hLZWVwQWxpdmV9LHI9ITE7KDAsaS5MbSkobSwoZnVuY3Rpb24oKXtyZXR1cm4iSHR0cE1hbmFnZXI6X2RvUGF5bG9hZFNlbmQuc2VuZEhvb2sifSksKGZ1bmN0aW9uKCl7dHJ5e2Uuc2VuZEhvb2sobiwoZnVuY3Rpb24oZSl7cj0hMCx0ZXx8ZS5fdGhlUGF5bG9hZHx8KGUuX3RoZVBheWxvYWQ9ZS5fdGhlUGF5bG9hZHx8Sy5fdGhlUGF5bG9hZCxlLl9zZW5kUmVhc29uPWUuX3NlbmRSZWFzb258fEsuX3NlbmRSZWFzb24pLHcoZSl9KSx0LmlzU3luY3x8dC5pc1RlYXJkb3duKX1jYXRjaChlKXtyfHx3KEspfX0pKX1lbHNlIHcoSyl9KSl9KSwoZnVuY3Rpb24oKXtyZXR1cm57dGhlUGF5bG9hZDp0LHNlcmlhbGl6YXRpb25TdGFydDpuLHNlcmlhbGl6YXRpb25Db21wbGV0ZWQ6byxzZW5kUmVhc29uOmF9fSksdC5pc1N5bmMpfXQuc2l6ZUV4Y2VlZCYmdC5zaXplRXhjZWVkLmxlbmd0aD4wJiZVZSh0LnNpemVFeGNlZWQsODAwMyx0LnNlbmRUeXBlKSx0LmZhaWxlZEV2dHMmJnQuZmFpbGVkRXZ0cy5sZW5ndGg+MCYmVWUodC5mYWlsZWRFdnRzLDgwMDIsdC5zZW5kVHlwZSl9ZnVuY3Rpb24gUmUoZSx0LG4pe3Q/ZSgpOnMuc2V0KGUsbil9ZnVuY3Rpb24gTmUodCl7dmFyIG49ZS5fcmVzcG9uc2VIYW5kbGVyczt0cnl7Zm9yKHZhciByPTA7cjxuLmxlbmd0aDtyKyspdHJ5e25bcl0odCl9Y2F0Y2goZSl7KDAsZC5rUCkoZiwxLDUxOSwiUmVzcG9uc2UgaGFuZGxlciBmYWlsZWQ6ICIrZSl9aWYodCl7dmFyIG89SlNPTi5wYXJzZSh0KTsoMCxjLlNuKShvLndlYlJlc3VsdCkmJigwLGMuU24pKG8ud2ViUmVzdWx0Lm1zZnBjKSYmay5zZXQoIk1TRlBDIixvLndlYlJlc3VsdC5tc2ZwYywzMTUzNmUzKX19Y2F0Y2goZSl7fX1mdW5jdGlvbiBVZShlLHQsbixyKXtpZihlJiZlLmxlbmd0aD4wJiZhKXt2YXIgbz1hW2Z1bmN0aW9uKGUpe3ZhciB0PXpbZV07KDAsYy5TbikodCl8fCh0PSJvdGgiLGU+PTllMyYmZTw9OTk5OT90PUk6ZT49OGUzJiZlPD04OTk5P3Q9djplPj0xZTMmJmU8PTE5OTkmJih0PWgpKTtyZXR1cm4gdH0odCldO2lmKG8pe3ZhciBzPTAhPT1uOygwLGkuTG0pKG0sKGZ1bmN0aW9uKCl7cmV0dXJuIkh0dHBNYW5hZ2VyOl9zZW5kQmF0Y2hlc05vdGlmaWNhdGlvbiJ9KSwoZnVuY3Rpb24oKXtSZSgoZnVuY3Rpb24oKXt0cnl7by5jYWxsKGEsZSx0LHMsbil9Y2F0Y2goZSl7KDAsZC5rUCkoZiwxLDc0LCJzZW5kIHJlcXVlc3Qgbm90aWZpY2F0aW9uIGZhaWxlZDogIitlKX19KSxyfHxzLDApfSksKGZ1bmN0aW9uKCl7cmV0dXJue2JhdGNoZXM6aGUoZSkscmVhc29uOnQsaXNTeW5jOnMsc2VuZFN5bmM6cixzZW5kVHlwZTpufX0pLCFzKX19fWUuaW5pdGlhbGl6ZT1mdW5jdGlvbihlLHQsbixyLGkpe3ZhciBhO2l8fChpPXt9KSxWPWUrVixjZT0hISgwLHUubzgpKGkuYXZvaWRPcHRpb25zKXx8IWkuYXZvaWRPcHRpb25zLG09dCxrPXQuZ2V0Q29va2llTWdyKCksYWU9IW0uY29uZmlnLmRpc2FibGVFdmVudFRpbWluZ3M7dmFyIHM9ISFtLmNvbmZpZy5lbmFibGVDb21wb3VuZEtleTtmPShIPW4pLmRpYWdMb2coKTt2YXIgYz1pLnZhbHVlU2FuaXRpemVyLHA9aS5zdHJpbmdpZnlPYmplY3RzOygwLHUubzgpKGkuZW5hYmxlQ29tcG91bmRLZXkpfHwocz0hIWkuZW5hYmxlQ29tcG91bmRLZXkpLEU9aS54aHJUaW1lb3V0LE89ISFpLmRpc2FibGVYaHJTeW5jLFQ9ISFpLmRpc2FibGVGZXRjaEtlZXBBbGl2ZSxMPSExIT09aS5hZGROb1Jlc3BvbnNlLEc9ISgwLGwuYiQpKCksaWU9bmV3IEoobSxjLHAscyksKDAsdS5sZSkoaS51c2VTZW5kQmVhY29uKXx8KEc9ISFpLnVzZVNlbmRCZWFjb24pO3ZhciBDPXIsdj1pLmFsd2F5c1VzZVhock92ZXJyaWRlP3I6bnVsbCxoPWkuYWx3YXlzVXNlWGhyT3ZlcnJpZGU/cjpudWxsLEk9WzMsMl07aWYoIXIpe3RlPSExO3ZhciBBPSgwLGwuayQpKCk7QSYmQS5wcm90b2NvbCYmImZpbGU6Ij09PUEucHJvdG9jb2wudG9Mb3dlckNhc2UoKSYmKG89ITEpO3ZhciBnPVtdOygwLGwuYiQpKCk/KGc9WzIsMV0sST1bMiwxLDNdKTpnPVsxLDIsM10sKHI9RChnPWVlKGcsaS50cmFuc3BvcnRzKSwhMSkpfHwoMCxkLmpWKShmLCJObyBhdmFpbGFibGUgdHJhbnNwb3J0IHRvIHNlbmQgZXZlbnRzIiksQz1EKGcsITApfXZ8fCh2PUQoST1lZShJLGkudW5sb2FkVHJhbnNwb3J0cyksITApKSx4PSF0ZSYmKEcmJigwLGwuTUYpKCl8fCFUJiYoMCxsLkpPKSghMCkpLChhPXt9KVswXT1yLGFbMV09Q3x8RChbMSwyLDNdLCEwKSxhWzJdPXZ8fEN8fEQoWzFdLCEwKSxhWzNdPWh8fEQoWzIsM10sITApfHxDfHxEKFsxXSwhMCksUz1hfSxlLl9nZXREYmdQbGdUYXJnZXRzPWZ1bmN0aW9uKCl7cmV0dXJuW1NbMF0sVyxpZSxTXX0sZS5hZGRRdWVyeVN0cmluZ1BhcmFtZXRlcj1mdW5jdGlvbihlLHQpe2Zvcih2YXIgbj0wO248bmUubGVuZ3RoO24rKylpZihuZVtuXS5uYW1lPT09ZSlyZXR1cm4gdm9pZChuZVtuXS52YWx1ZT10KTtuZS5wdXNoKHtuYW1lOmUsdmFsdWU6dH0pfSxlLmFkZEhlYWRlcj1mdW5jdGlvbihlLHQpe3JlW2VdPXR9LGUuY2FuU2VuZFJlcXVlc3Q9ZnVuY3Rpb24oKXtyZXR1cm4gcGUoKSYmcS5hbGxvd1JlcXVlc3RTZW5kaW5nKCl9LGUuc2VuZFF1ZXVlZFJlcXVlc3RzPWZ1bmN0aW9uKGUsdCl7KDAsdS5vOCkoZSkmJihlPTApLHNlJiYoZT1TZShlKSx0PTIpLHZlKG9lLGUsMCkmJm1lKENlKCksMCwhMSxlLHR8fDApfSxlLmlzQ29tcGxldGVseUlkbGU9ZnVuY3Rpb24oKXtyZXR1cm4haiYmMD09PVEmJjA9PT1vZS5sZW5ndGh9LGUuc2V0VW5sb2FkaW5nPWZ1bmN0aW9uKGUpe3NlPWV9LGUuYWRkQmF0Y2g9ZnVuY3Rpb24oZSl7aWYoZSYmZS5jb3VudCgpPjApe2lmKFcuaXNUZW5hbnRLaWxsZWQoZS5pS2V5KCkpKXJldHVybiExO29lLnB1c2goZSl9cmV0dXJuITB9LGUudGVhcmRvd249ZnVuY3Rpb24oKXtvZS5sZW5ndGg+MCYmbWUoQ2UoKSwwLCEwLDIsMil9LGUucGF1c2U9ZnVuY3Rpb24oKXtqPSEwfSxlLnJlc3VtZT1mdW5jdGlvbigpe2o9ITEsZS5zZW5kUXVldWVkUmVxdWVzdHMoMCw0KX0sZS5zZW5kU3luY2hyb25vdXNCYXRjaD1mdW5jdGlvbihlLHQsbil7ZSYmZS5jb3VudCgpPjAmJigoMCx1LmxlKSh0KSYmKHQ9MSksc2UmJih0PVNlKHQpLG49MiksbWUoW2VdLDAsITEsdCxufHwwKSl9fSkpfXJldHVybiBlLl9faWVEeW49MSxlfSgpO2Z1bmN0aW9uIG5lKGUsdCl7Zm9yKHZhciBuPVtdLHI9MjtyPGFyZ3VtZW50cy5sZW5ndGg7cisrKW5bci0yXT1hcmd1bWVudHNbcl07cmV0dXJuIHNldFRpbWVvdXQoZSx0LG4pfWZ1bmN0aW9uIHJlKGUpe2NsZWFyVGltZW91dChlKX1mdW5jdGlvbiBvZShlLHQpe3JldHVybntzZXQ6ZXx8bmUsY2xlYXI6dHx8cmV9fXZhciBpZT0iZXZlbnRzRGlzY2FyZGVkIjtjb25zdCBhZT1mdW5jdGlvbihlKXtmdW5jdGlvbiB0KCl7dmFyIG4scj1lLmNhbGwodGhpcyl8fHRoaXM7ci5pZGVudGlmaWVyPSJQb3N0Q2hhbm5lbCIsci5wcmlvcml0eT0xMDExLHIudmVyc2lvbj0iMy4yLjkiO3ZhciBmLHAsQyx2LGgsbSxJLEE9ITEsZz1bXSxSPW51bGwsTj0hMSxVPTAseT01MDAsSz0wLHc9MWU0LGI9e30sUD1TLm93LEU9bnVsbCxPPW51bGwsVD0wLEQ9MCxNPXt9LEI9LTEsTD0hMCxWPSExLFc9NixqPTI7cmV0dXJuKDAsby5aKSh0LHIsKGZ1bmN0aW9uKGUsdCl7ZnVuY3Rpb24gcihlKXsiYmVmb3JldW5sb2FkIiE9PShlfHwoMCxsLkpqKSgpLmV2ZW50KS50eXBlJiYoVj0hMCxwLnNldFVubG9hZGluZyhWKSksWCgyLDIpfWZ1bmN0aW9uIG8oZSl7Vj0hMSxwLnNldFVubG9hZGluZyhWKX1mdW5jdGlvbiBKKGUsdCl7aWYoZS5zZW5kQXR0ZW1wdHx8KGUuc2VuZEF0dGVtcHQ9MCksZS5sYXRlbmN5fHwoZS5sYXRlbmN5PTEpLGUuZXh0JiZlLmV4dC50cmFjZSYmZGVsZXRlIGUuZXh0LnRyYWNlLGUuZXh0JiZlLmV4dC51c2VyJiZlLmV4dC51c2VyLmlkJiZkZWxldGUgZS5leHQudXNlci5pZCxMJiYoYy5pZixlLmV4dD0oMCx1LkF4KShlLmV4dCksZS5iYXNlRGF0YSYmKGUuYmFzZURhdGE9KDAsdS5BeCkoZS5iYXNlRGF0YSkpLGUuZGF0YSYmKGUuZGF0YT0oMCx1LkF4KShlLmRhdGEpKSksZS5zeW5jKWlmKFR8fE4pZS5sYXRlbmN5PTMsZS5zeW5jPSExO2Vsc2UgaWYocClyZXR1cm4gTCYmKGU9KDAsdS5BeCkoZSkpLHZvaWQgcC5zZW5kU3luY2hyb25vdXNCYXRjaCh4LmNyZWF0ZShlLmlLZXksW2VdKSwhMD09PWUuc3luYz8xOmUuc3luYywzKTt2YXIgbj1lLmxhdGVuY3kscj1LLG89dzs0PT09biYmKHI9VSxvPXkpO3ZhciBpPSExO2lmKHI8bylpPSFlZShlLHQpO2Vsc2V7dmFyIGE9MSxzPTIwOzQ9PT1uJiYoYT00LHM9MSksaT0hMCxmdW5jdGlvbihlLHQsbixyKXtmb3IoO248PXQ7KXt2YXIgbz1fKGUsdCwhMCk7aWYobyYmby5jb3VudCgpPjApe3ZhciBpPW8uc3BsaXQoMCxyKSxhPWkuY291bnQoKTtpZihhPjApcmV0dXJuIDQ9PT1uP1UtPWE6Sy09YSxkZShpZSxbaV0sSC5RdWV1ZUZ1bGwpLCEwfW4rK31yZXR1cm4gbmUoKSwhMX0oZS5pS2V5LGUubGF0ZW5jeSxhLHMpJiYoaT0hZWUoZSx0KSl9aSYmSGUoaWUsW2VdLEguUXVldWVGdWxsKX1mdW5jdGlvbiBxKGUsdCxuKXt2YXIgcj1yZShlLHQsbik7cmV0dXJuIHAuc2VuZFF1ZXVlZFJlcXVlc3RzKHQsbikscn1mdW5jdGlvbiBaKCl7cmV0dXJuIEs+MH1mdW5jdGlvbiB6KCl7aWYoQj49MCYmcmUoQiwwLGgpJiZwLnNlbmRRdWV1ZWRSZXF1ZXN0cygwLGgpLFU+MCYmIU8mJiFOKXt2YXIgZT1iW1BdWzJdO2U+PTAmJihPPVkoKGZ1bmN0aW9uKCl7Tz1udWxsLHEoNCwwLDEpLHooKX0pLGUpKX12YXIgdD1iW1BdWzFdOyFFJiYhUiYmdD49MCYmIU4mJihaKCk/RT1ZKChmdW5jdGlvbigpe0U9bnVsbCxxKDA9PT1EPzM6MSwwLDEpLEQrKyxEJT0yLHooKX0pLHQpOkQ9MCl9ZnVuY3Rpb24gRygpe249bnVsbCxBPSExLGc9W10sUj1udWxsLE49ITEsVT0wLHk9NTAwLEs9MCx3PTFlNCxiPXt9LFA9Uy5vdyxFPW51bGwsTz1udWxsLFQ9MCxEPTAsZj1udWxsLE09e30sQz12b2lkIDAsdj0wLEI9LTEsaD1udWxsLEw9ITAsVj0hMSxXPTYsaj0yLG09bnVsbCxJPW9lKCkscD1uZXcgdGUoNTAwLDIsMSx7cmVxdWV1ZTp1ZSxzZW5kOmZlLHNlbnQ6U2UsZHJvcDpwZSxyc3BGYWlsOkNlLG90aDp2ZX0sSSksY2UoKSxNWzRdPXtiYXRjaGVzOltdLGlLZXlNYXA6e319LE1bM109e2JhdGNoZXM6W10saUtleU1hcDp7fX0sTVsyXT17YmF0Y2hlczpbXSxpS2V5TWFwOnt9fSxNWzFdPXtiYXRjaGVzOltdLGlLZXlNYXA6e319LGhlKCl9ZnVuY3Rpb24gWShlLHQpezA9PT10JiZUJiYodD0xKTt2YXIgbj0xZTM7cmV0dXJuIFQmJihuPUYoVC0xKSksSS5zZXQoZSx0Km4pfWZ1bmN0aW9uIFEoKXtyZXR1cm4gbnVsbCE9PUUmJihJLmNsZWFyKEUpLEU9bnVsbCxEPTAsITApfWZ1bmN0aW9uIFgoZSx0KXtRKCksUiYmKEkuY2xlYXIoUiksUj1udWxsKSxOfHxxKDEsZSx0KX1mdW5jdGlvbiBfKGUsdCxuKXt2YXIgcj1NW3RdO3J8fChyPU1bdD0xXSk7dmFyIG89ci5pS2V5TWFwW2VdO3JldHVybiFvJiZuJiYobz14LmNyZWF0ZShlKSxyLmJhdGNoZXMucHVzaChvKSxyLmlLZXlNYXBbZV09byksb31mdW5jdGlvbiAkKHQsbil7cC5jYW5TZW5kUmVxdWVzdCgpJiYhVCYmKEM+MCYmSz5DJiYobj0hMCksbiYmbnVsbD09UiYmZS5mbHVzaCh0LG51bGwsMjApKX1mdW5jdGlvbiBlZShlLHQpe0wmJihlPSgwLHUuQXgpKGUpKTt2YXIgbj1lLmxhdGVuY3kscj1fKGUuaUtleSxuLCEwKTtyZXR1cm4hIXIuYWRkRXZlbnQoZSkmJig0IT09bj8oSysrLHQmJjA9PT1lLnNlbmRBdHRlbXB0JiYkKCFlLnN5bmMsdj4wJiZyLmNvdW50KCk+PXYpKTpVKyssITApfWZ1bmN0aW9uIG5lKCl7Zm9yKHZhciBlPTAsdD0wLG49ZnVuY3Rpb24obil7dmFyIHI9TVtuXTtyJiZyLmJhdGNoZXMmJigwLHUudE8pKHIuYmF0Y2hlcywoZnVuY3Rpb24ocil7ND09PW4/ZSs9ci5jb3VudCgpOnQrPXIuY291bnQoKX0pKX0scj0xO3I8PTQ7cisrKW4ocik7Sz10LFU9ZX1mdW5jdGlvbiByZSh0LG4scil7dmFyIG89ITEsYT0wPT09bjtyZXR1cm4hYXx8cC5jYW5TZW5kUmVxdWVzdCgpPygwLGkuTG0pKGUuY29yZSwoZnVuY3Rpb24oKXtyZXR1cm4iUG9zdENoYW5uZWwuX3F1ZXVlQmF0Y2hlcyJ9KSwoZnVuY3Rpb24oKXtmb3IodmFyIGU9W10sbj00O24+PXQ7KXt2YXIgcj1NW25dO3ImJnIuYmF0Y2hlcyYmci5iYXRjaGVzLmxlbmd0aD4wJiYoKDAsdS50Tykoci5iYXRjaGVzLChmdW5jdGlvbih0KXtwLmFkZEJhdGNoKHQpP289b3x8dCYmdC5jb3VudCgpPjA6ZT1lLmNvbmNhdCh0LmV2ZW50cygpKSw0PT09bj9VLT10LmNvdW50KCk6Sy09dC5jb3VudCgpfSkpLHIuYmF0Y2hlcz1bXSxyLmlLZXlNYXA9e30pLG4tLX1lLmxlbmd0aD4wJiZIZShpZSxlLEguS2lsbFN3aXRjaCksbyYmQj49dCYmKEI9LTEsaD0wKX0pLChmdW5jdGlvbigpe3JldHVybntsYXRlbmN5OnQsc2VuZFR5cGU6bixzZW5kUmVhc29uOnJ9fSksIWEpOihCPUI+PTA/TWF0aC5taW4oQix0KTp0LGg9TWF0aC5tYXgoaCxyKSksb31mdW5jdGlvbiBhZShlLHQpe3EoMSwwLHQpLG5lKCksc2UoKGZ1bmN0aW9uKCl7ZSYmZSgpLGcubGVuZ3RoPjA/Uj1ZKChmdW5jdGlvbigpe1I9bnVsbCxhZShnLnNoaWZ0KCksdCl9KSwwKTooUj1udWxsLHooKSl9KSl9ZnVuY3Rpb24gc2UoZSl7cC5pc0NvbXBsZXRlbHlJZGxlKCk/ZSgpOlI9WSgoZnVuY3Rpb24oKXtSPW51bGwsc2UoZSl9KSwuMjUpfWZ1bmN0aW9uIGNlKCl7KGI9e30pW1Mub3ddPVsyLDEsMF0sYltTLmplXT1bNiwzLDBdLGJbUy5lMl09WzE4LDksMF19ZnVuY3Rpb24gdWUodCxuKXt2YXIgcj1bXSxvPVc7ViYmKG89aiksKDAsdS50TykodCwoZnVuY3Rpb24odCl7dCYmdC5jb3VudCgpPjAmJigwLHUudE8pKHQuZXZlbnRzKCksKGZ1bmN0aW9uKHQpe3QmJih0LnN5bmMmJih0LmxhdGVuY3k9NCx0LnN5bmM9ITEpLHQuc2VuZEF0dGVtcHQ8bz8oKDAsYy5pZikodCxlLmlkZW50aWZpZXIpLEoodCwhMSkpOnIucHVzaCh0KSl9KSl9KSksci5sZW5ndGg+MCYmSGUoaWUscixILk5vblJldHJ5YWJsZVN0YXR1cyksViYmWCgyLDIpfWZ1bmN0aW9uIGxlKHQsbil7dmFyIHI9ZS5fbm90aWZpY2F0aW9uTWFuYWdlcnx8e30sbz1yW3RdO2lmKG8pdHJ5e28uYXBwbHkocixuKX1jYXRjaChuKXsoMCxkLmtQKShlLmRpYWdMb2coKSwxLDc0LHQrIiBub3RpZmljYXRpb24gZmFpbGVkOiAiK24pfX1mdW5jdGlvbiBIZShlLHQpe2Zvcih2YXIgbj1bXSxyPTI7cjxhcmd1bWVudHMubGVuZ3RoO3IrKyluW3ItMl09YXJndW1lbnRzW3JdO3QmJnQubGVuZ3RoPjAmJmxlKGUsW3RdLmNvbmNhdChuKSl9ZnVuY3Rpb24gZGUoZSx0KXtmb3IodmFyIG49W10scj0yO3I8YXJndW1lbnRzLmxlbmd0aDtyKyspbltyLTJdPWFyZ3VtZW50c1tyXTt0JiZ0Lmxlbmd0aD4wJiYoMCx1LnRPKSh0LChmdW5jdGlvbih0KXt0JiZ0LmNvdW50KCk+MCYmbGUoZSxbdC5ldmVudHMoKV0uY29uY2F0KG4pKX0pKX1mdW5jdGlvbiBmZShlLHQsbil7ZSYmZS5sZW5ndGg+MCYmbGUoImV2ZW50c1NlbmRSZXF1ZXN0IixbdD49MWUzJiZ0PD0xOTk5P3QtMWUzOjAsITAhPT1uXSl9ZnVuY3Rpb24gU2UoZSx0KXtkZSgiZXZlbnRzU2VudCIsZSx0KSx6KCl9ZnVuY3Rpb24gcGUoZSx0KXtkZShpZSxlLHQ+PThlMyYmdDw9ODk5OT90LThlMzpILlVua25vd24pfWZ1bmN0aW9uIENlKGUpe2RlKGllLGUsSC5Ob25SZXRyeWFibGVTdGF0dXMpLHooKX1mdW5jdGlvbiB2ZShlLHQpe2RlKGllLGUsSC5Vbmtub3duKSx6KCl9ZnVuY3Rpb24gaGUoKXt2PW4mJm4uZGlzYWJsZUF1dG9CYXRjaEZsdXNoTGltaXQ/MDpNYXRoLm1heCgxNTAwLHcvNil9RygpLGUuX2dldERiZ1BsZ1RhcmdldHM9ZnVuY3Rpb24oKXtyZXR1cm5bcF19LGUuaW5pdGlhbGl6ZT1mdW5jdGlvbihsLEgsZCl7KDAsaS5MbSkoSCwoZnVuY3Rpb24oKXtyZXR1cm4iUG9zdENoYW5uZWw6aW5pdGlhbGl6ZSJ9KSwoZnVuY3Rpb24oKXt2YXIgaT1IO3QuaW5pdGlhbGl6ZShsLEgsZCk7dHJ5e0guYWRkVW5sb2FkQ2I7bT0oMCxhLmpVKSgoMCxzLkopKGUuaWRlbnRpZmllciksSC5ldnROYW1lc3BhY2UmJkguZXZ0TmFtZXNwYWNlKCkpO3ZhciBTPWUuX2dldFRlbEN0eCgpO2wuZXh0ZW5zaW9uQ29uZmlnW2UuaWRlbnRpZmllcl09bC5leHRlbnNpb25Db25maWdbZS5pZGVudGlmaWVyXXx8e30sbj1TLmdldEV4dENmZyhlLmlkZW50aWZpZXIpLEk9b2Uobi5zZXRUaW1lb3V0T3ZlcnJpZGUsbi5jbGVhclRpbWVvdXRPdmVycmlkZSksTD0hbi5kaXNhYmxlT3B0aW1pemVPYmomJigwLGMubUopKCksZnVuY3Rpb24oZSl7dmFyIHQ9ZS5nZXRXUGFyYW07ZS5nZXRXUGFyYW09ZnVuY3Rpb24oKXt2YXIgZT0wO3JldHVybiBuLmlnbm9yZU1jMU1zMENvb2tpZVByb2Nlc3NpbmcmJihlfD0yKSxlfHQoKX19KGkpLG4uZXZlbnRzTGltaXRJbk1lbT4wJiYodz1uLmV2ZW50c0xpbWl0SW5NZW0pLG4uaW1tZWRpYXRlRXZlbnRMaW1pdD4wJiYoeT1uLmltbWVkaWF0ZUV2ZW50TGltaXQpLG4uYXV0b0ZsdXNoRXZlbnRzTGltaXQ+MCYmKEM9bi5hdXRvRmx1c2hFdmVudHNMaW1pdCksKDAsdS5oaikobi5tYXhFdmVudFJldHJ5QXR0ZW1wdHMpJiYoVz1uLm1heEV2ZW50UmV0cnlBdHRlbXB0cyksKDAsdS5oaikobi5tYXhVbmxvYWRFdmVudFJldHJ5QXR0ZW1wdHMpJiYoaj1uLm1heFVubG9hZEV2ZW50UmV0cnlBdHRlbXB0cyksaGUoKSxuLmh0dHBYSFJPdmVycmlkZSYmbi5odHRwWEhST3ZlcnJpZGUuc2VuZFBPU1QmJihmPW4uaHR0cFhIUk92ZXJyaWRlKSwoMCxjLlNuKShsLmFub25Db29raWVOYW1lKSYmcC5hZGRRdWVyeVN0cmluZ1BhcmFtZXRlcigiYW5vbmNrbm0iLGwuYW5vbkNvb2tpZU5hbWUpLHAuc2VuZEhvb2s9bi5wYXlsb2FkUHJlcHJvY2Vzc29yLHAuc2VuZExpc3RlbmVyPW4ucGF5bG9hZExpc3RlbmVyO3ZhciB2PW4ub3ZlcnJpZGVFbmRwb2ludFVybD9uLm92ZXJyaWRlRW5kcG9pbnRVcmw6bC5lbmRwb2ludFVybDtlLl9ub3RpZmljYXRpb25NYW5hZ2VyPUguZ2V0Tm90aWZ5TWdyKCkscC5pbml0aWFsaXplKHYsZS5jb3JlLGUsZixuKTt2YXIgaD1sLmRpc2FibGVQYWdlVW5sb2FkRXZlbnRzfHxbXTsoMCxhLmM5KShyLGgsbSksKDAsYS5USikocixoLG0pLCgwLGEubkQpKG8sbC5kaXNhYmxlUGFnZVNob3dFdmVudHMsbSl9Y2F0Y2godCl7dGhyb3cgZS5zZXRJbml0aWFsaXplZCghMSksdH19KSwoZnVuY3Rpb24oKXtyZXR1cm57Y29yZUNvbmZpZzpsLGNvcmU6SCxleHRlbnNpb25zOmR9fSkpfSxlLnByb2Nlc3NUZWxlbWV0cnk9ZnVuY3Rpb24odCxyKXsoMCxjLmlmKSh0LGUuaWRlbnRpZmllcik7dmFyIG89KHI9ZS5fZ2V0VGVsQ3R4KHIpKS5nZXRFeHRDZmcoZS5pZGVudGlmaWVyKSxpPSEhbi5kaXNhYmxlVGVsZW1ldHJ5O28mJihpPWl8fCEhby5kaXNhYmxlVGVsZW1ldHJ5KTt2YXIgYT10O2l8fEF8fChuLm92ZXJyaWRlSW5zdHJ1bWVudGF0aW9uS2V5JiYoYS5pS2V5PW4ub3ZlcnJpZGVJbnN0cnVtZW50YXRpb25LZXkpLG8mJm8ub3ZlcnJpZGVJbnN0cnVtZW50YXRpb25LZXkmJihhLmlLZXk9by5vdmVycmlkZUluc3RydW1lbnRhdGlvbktleSksSihhLCEwKSxWP1goMiwyKTp6KCkpLGUucHJvY2Vzc05leHQoYSxyKX0sZS5fZG9UZWFyZG93bj1mdW5jdGlvbihlLHQpe1goMiwyKSxBPSEwLHAudGVhcmRvd24oKSwoMCxhLkpBKShudWxsLG0pLCgwLGEuQzkpKG51bGwsbSksKDAsYS5ZbCkobnVsbCxtKSxHKCl9LGUuc2V0RXZlbnRRdWV1ZUxpbWl0cz1mdW5jdGlvbihlLHQpe3c9ZT4wP2U6MWU0LEM9dD4wP3Q6MCxoZSgpO3ZhciBuPUs+ZTtpZighbiYmdj4wKWZvcih2YXIgcj0xOyFuJiZyPD0zO3IrKyl7dmFyIG89TVtyXTtvJiZvLmJhdGNoZXMmJigwLHUudE8pKG8uYmF0Y2hlcywoZnVuY3Rpb24oZSl7ZSYmZS5jb3VudCgpPj12JiYobj0hMCl9KSl9JCghMCxuKX0sZS5wYXVzZT1mdW5jdGlvbigpe1EoKSxOPSEwLHAucGF1c2UoKX0sZS5yZXN1bWU9ZnVuY3Rpb24oKXtOPSExLHAucmVzdW1lKCkseigpfSxlLmFkZFJlc3BvbnNlSGFuZGxlcj1mdW5jdGlvbihlKXtwLl9yZXNwb25zZUhhbmRsZXJzLnB1c2goZSl9LGUuX2xvYWRUcmFuc21pdFByb2ZpbGVzPWZ1bmN0aW9uKGUpe1EoKSxjZSgpLFA9Uy5vdyx6KCksKDAsdS5yVykoZSwoZnVuY3Rpb24oZSx0KXt2YXIgbj10Lmxlbmd0aDtpZihuPj0yKXt2YXIgcj1uPjI/dFsyXTowO2lmKHQuc3BsaWNlKDAsbi0yKSx0WzFdPDAmJih0WzBdPS0xKSx0WzFdPjAmJnRbMF0+MCl7dmFyIG89dFswXS90WzFdO3RbMF09TWF0aC5jZWlsKG8pKnRbMV19cj49MCYmdFsxXT49MCYmcj50WzFdJiYocj10WzFdKSx0LnB1c2gociksYltlXT10fX0pKX0sZS5mbHVzaD1mdW5jdGlvbihlLHQsbil7aWYodm9pZCAwPT09ZSYmKGU9ITApLCFOKWlmKG49bnx8MSxlKW51bGw9PVI/KFEoKSxyZSgxLDAsbiksUj1ZKChmdW5jdGlvbigpe1I9bnVsbCxhZSh0LG4pfSksMCkpOmcucHVzaCh0KTtlbHNle3ZhciByPVEoKTtxKDEsMSxuKSxudWxsIT10JiZ0KCksciYmeigpfX0sZS5zZXRNc2FBdXRoVGlja2V0PWZ1bmN0aW9uKGUpe3AuYWRkSGVhZGVyKGssZSl9LGUuaGFzRXZlbnRzPVosZS5fc2V0VHJhbnNtaXRQcm9maWxlPWZ1bmN0aW9uKGUpe1AhPT1lJiZ2b2lkIDAhPT1iW2VdJiYoUSgpLFA9ZSx6KCkpfSxlLl9iYWNrT2ZmVHJhbnNtaXNzaW9uPWZ1bmN0aW9uKCl7VDw0JiYoVCsrLFEoKSx6KCkpfSxlLl9jbGVhckJhY2tPZmY9ZnVuY3Rpb24oKXtUJiYoVD0wLFEoKSx6KCkpfSwoMCx1LmxfKShlLCJfc2V0VGltZW91dE92ZXJyaWRlIiwoZnVuY3Rpb24oKXtyZXR1cm4gSS5zZXR9KSwoZnVuY3Rpb24oZSl7ST1vZShlLEkuY2xlYXIpfSkpLCgwLHUubF8pKGUsIl9jbGVhclRpbWVvdXRPdmVycmlkZSIsKGZ1bmN0aW9uKCl7cmV0dXJuIEkuY2xlYXJ9KSwoZnVuY3Rpb24oZSl7ST1vZShJLnNldCxlKX0pKX0pKSxyfXJldHVybigwLHIubmUpKHQsZSksdC5fX2llRHluPTEsdH0oZi5pKX0sNDg1MzYyOihlLHQsbik9PnsidXNlIHN0cmljdCI7bi5kKHQse0J5OigpPT5vLGNjOigpPT5pfSk7dmFyIHI9big5Mjk1NDEpO2Z1bmN0aW9uIG8oZSl7dmFyIHQ9e307cmV0dXJuKDAsci5yVykoZSwoZnVuY3Rpb24oZSxuKXt0W2VdPW4sdFtuXT1lfSkpLCgwLHIuX0EpKHQpfWZ1bmN0aW9uIGkoZSl7dmFyIHQ9e307cmV0dXJuKDAsci5yVykoZSwoZnVuY3Rpb24oZSxuKXt0W2VdPW5bMV0sdFtuWzBdXT1uWzFdfSkpLCgwLHIuX0EpKHQpfX0sNzY2ODY0OihlLHQsbik9PnsidXNlIHN0cmljdCI7bi5kKHQse2k6KCk9PnV9KTt2YXIgcj1uKDkyMzgwNiksbz1uKDE3MzU5NyksaT1uKDkyOTU0MSksYT1uKDM4Mjc3OCkscz1uKDQ3NjkwNSksYz1uKDg1MTkzMCksdT1mdW5jdGlvbigpe2Z1bmN0aW9uIGUoKXt2YXIgdCxuLHUsbCxILGQ9dGhpcztmdW5jdGlvbiBmKGUpe3ZvaWQgMD09PWUmJihlPW51bGwpO3ZhciB0PWU7aWYoIXQpe3ZhciByPW58fCgwLHMuQ0QpKG51bGwse30sZFthLm9WXSk7dD11JiZ1LmdldFBsdWdpbj9yW28uelZdKG51bGwsdS5nZXRQbHVnaW4pOnJbby56Vl0obnVsbCx1KX1yZXR1cm4gdH1mdW5jdGlvbiBTKGUsdCxyKXtlJiYoMCxpLnNPKShlLGEuWmgsW10sbnVsbCxpLmxlKSwhciYmdCYmKHI9dFtvLlNEXSgpW28uVzJdKCkpO3ZhciBjPXU7dSYmdS5nZXRQbHVnaW4mJihjPXUuZ2V0UGx1Z2luKCkpLGRbYS5vVl09dCxuPSgwLHMuQ0QpKHIsZSx0LGMpfWZ1bmN0aW9uIHAoKXt0PSExLGRbYS5vVl09bnVsbCxuPW51bGwsdT1udWxsLEg9W10sbD0oMCxjLlkpKCl9cCgpLCgwLHIuWikoZSxkLChmdW5jdGlvbihlKXtlW28uVkxdPWZ1bmN0aW9uKGUsbixyLG8pe1MoZSxuLG8pLHQ9ITB9LGVbby5maV09ZnVuY3Rpb24odCxuKXt2YXIgcixjPWVbYS5vVl07aWYoYyYmKCF0fHxjPT09dFthLm9WXSgpKSl7dmFyIGQsZj0hMSxTPXR8fCgwLHMuQnQpKG51bGwsYyx1JiZ1LmdldFBsdWdpbj91LmdldFBsdWdpbigpOnUpLEM9bnx8KChyPXtyZWFzb246MH0pW28uZF09ITEscik7cmV0dXJuIGVbby5GM10mJiEwPT09ZVtvLkYzXShTLEMsdik/ZD0hMDp2KCksZH1mdW5jdGlvbiB2KCl7aWYoIWYpe2Y9ITAsbC5ydW4oUyxuKTt2YXIgZT1IO0g9W10sKDAsaS50TykoZSwoZnVuY3Rpb24oZSl7ZS5ybSgpfSkpLCEwPT09ZCYmU1tvLnVMXShDKSxwKCl9fX0sZVtvLlR1XT1mdW5jdGlvbih0LG4pe3ZhciByPWVbYS5vVl07aWYociYmKCF0fHxyPT09dFthLm9WXSgpKSl7dmFyIGksYz0hMSxsPXR8fCgwLHMueHkpKG51bGwscix1JiZ1LmdldFBsdWdpbj91LmdldFBsdWdpbigpOnUpLEg9bnx8e3JlYXNvbjowfTtyZXR1cm4gZS5fZG9VcGRhdGUmJiEwPT09ZS5fZG9VcGRhdGUobCxILGQpP2k9ITA6ZCgpLGl9ZnVuY3Rpb24gZCgpe2N8fChjPSEwLFMobC5nZXRDZmcoKSxsLmNvcmUoKSxsW28uVzJdKCkpKX19LGUuX2FkZEhvb2s9ZnVuY3Rpb24oZSl7ZSYmKCgwLGkua0opKGUpP0g9SC5jb25jYXQoZSk6SFtvLk1XXShlKSl9LCgwLGkuT2kpKGUsIl9hZGRVbmxvYWRDYiIsKGZ1bmN0aW9uKCl7cmV0dXJuIGx9KSwiYWRkIil9KSksZFtvLm1jXT1mdW5jdGlvbihlKXtyZXR1cm4gZihlKVtvLm1jXSgpfSxkW28ueWxdPWZ1bmN0aW9uKCl7cmV0dXJuIHR9LGQuc2V0SW5pdGlhbGl6ZWQ9ZnVuY3Rpb24oZSl7dD1lfSxkW28uSmRdPWZ1bmN0aW9uKGUpe3U9ZX0sZFtvLnVMXT1mdW5jdGlvbihlLHQpe3Q/dFtvLnVMXShlKTp1JiYoMCxpLm1mKSh1W2EuaExdKSYmdVthLmhMXShlLG51bGwpfSxkLl9nZXRUZWxDdHg9Zn1yZXR1cm4gZS5fX2llRHluPTEsZX0oKX0sNzMxNzQwOihlLHQsbik9PnsidXNlIHN0cmljdCI7bi5kKHQse0pQOigpPT5JLE56OigpPT5BLFVZOigpPT53LGtqOigpPT52LHA3OigpPT5nfSk7dmFyIHI9bigxNzM1OTcpLG89big2NjIzNzIpLGk9big4MDMxNDUpLGE9big5Mjk1NDEpLHM9bigzODI3NzgpLGM9InRvR01UU3RyaW5nIix1PSJ0b1VUQ1N0cmluZyIsbD0iZXhwaXJlcyIsSD1udWxsLGQ9bnVsbCxmPW51bGwsUz0oMCxpLk1lKSgpLHA9e30sQz17fTtmdW5jdGlvbiB2KGUsdCl7dmFyIG49QS5fY2tNZ3J8fEMuX2NrTWdyO3JldHVybiBufHwobj1BLl9ja01ncj1BKGUsdCksQy5fY2tNZ3I9biksbn1mdW5jdGlvbiBoKGUpe3JldHVybiFlfHxlLmlzRW5hYmxlZCgpfWZ1bmN0aW9uIG0oZSx0KXtyZXR1cm4hISh0JiZlJiYoMCxhLmtKKShlLmlnbm9yZUNvb2tpZXMpKSYmLTEhPT1lLmlnbm9yZUNvb2tpZXNbci5vdV0odCl9ZnVuY3Rpb24gSShlLHQpe3ZhciBuO2lmKGUpbj1lLmdldENvb2tpZU1ncigpO2Vsc2UgaWYodCl7dmFyIG89dFtyLkxrXTtuPW8uX2NrTWdyP28uX2NrTWdyOkEodCl9cmV0dXJuIG58fChuPXYodCwoZXx8e30pW3IuZVpdKSksbn1mdW5jdGlvbiBBKGUsdCl7dmFyIG4sbz1mdW5jdGlvbihlKXt2YXIgdD1lW3IuTGtdPWVbci5Ma118fHt9O2lmKCgwLGEuc08pKHQsImRvbWFpbiIsZS5jb29raWVEb21haW4sYS5CWCxhLmxlKSwoMCxhLnNPKSh0LCJwYXRoIixlLmNvb2tpZVBhdGh8fCIvIixudWxsLGEubGUpLCgwLGEubGUpKHQuZW5hYmxlZCkpe3ZhciBuPXZvaWQgMDsoMCxhLm84KShlLmlzQ29va2llVXNlRGlzYWJsZWQpfHwobj0hZS5pc0Nvb2tpZVVzZURpc2FibGVkKSwoMCxhLm84KShlLmRpc2FibGVDb29raWVzVXNhZ2UpfHwobj0hZS5kaXNhYmxlQ29va2llc1VzYWdlKSx0LmVuYWJsZWQ9bn1yZXR1cm4gdH0oZXx8QyksSD1vLnBhdGh8fCIvIixmPW8uZG9tYWluLFM9ITEhPT1vLmVuYWJsZWQscD0oKG49e2lzRW5hYmxlZDpmdW5jdGlvbigpe3ZhciBlPVMmJmcodCksbj1DLl9ja01ncjtyZXR1cm4gZSYmbiYmcCE9PW4mJihlPWgobikpLGV9fSlbci4kaF09ZnVuY3Rpb24oZSl7Uz0hMSE9PWV9LG4uc2V0PWZ1bmN0aW9uKGUsdCxuLFMsQyl7dmFyIHY9ITE7aWYoaChwKSYmIWZ1bmN0aW9uKGUsdCl7cmV0dXJuISEodCYmZSYmKDAsYS5rSikoZS5ibG9ja2VkQ29va2llcykmJi0xIT09ZS5ibG9ja2VkQ29va2llc1tyLm91XSh0KSl8fG0oZSx0KX0obyxlKSl7dmFyIEk9e30sQT0oMCxhLm5kKSh0fHxzLnFTKSxnPUFbci5vdV0oIjsiKTtpZigtMSE9PWcmJihBPSgwLGEubmQpKHRbci56Y10oMCxnKSksST1SKHRbci56Y10oZysxKSkpLCgwLGEuc08pKEksImRvbWFpbiIsU3x8ZixhLmZRLGEubzgpLCEoMCxhLmxlKShuKSl7dmFyIHk9KDAsaS53MSkoKTtpZigoMCxhLm84KShJLmV4cGlyZXMpKXt2YXIgYj0oMCxhLm02KSgpKzFlMypuO2lmKGI+MCl7dmFyIFA9bmV3IERhdGU7UC5zZXRUaW1lKGIpLCgwLGEuc08pKEksbCxOKFAseT9jOnUpfHxOKFAseT9jOnUpfHxzLnFTLGEuZlEpfX15fHwoMCxhLnNPKShJLCJtYXgtYWdlIixzLnFTK24sbnVsbCxhLm84KX12YXIgaz0oMCxpLmskKSgpO2smJiJodHRwczoiPT09ay5wcm90b2NvbCYmKCgwLGEuc08pKEksInNlY3VyZSIsbnVsbCxudWxsLGEubzgpLG51bGw9PT1kJiYoZD0hdygoKDAsaS5qVykoKXx8e30pW3IucVZdKSksZCYmKDAsYS5zTykoSSwiU2FtZVNpdGUiLCJOb25lIixudWxsLGEubzgpKSwoMCxhLnNPKShJLCJwYXRoIixDfHxILG51bGwsYS5vOCksKG8uc2V0Q29va2llfHxLKShlLFUoQSxJKSksdj0hMH1yZXR1cm4gdn0sbi5nZXQ9ZnVuY3Rpb24oZSl7dmFyIHQ9cy5xUztyZXR1cm4gaChwKSYmIW0obyxlKSYmKHQ9KG8uZ2V0Q29va2llfHx5KShlKSksdH0sbi5kZWw9ZnVuY3Rpb24oZSx0KXt2YXIgbj0hMTtyZXR1cm4gaChwKSYmKG49cC5wdXJnZShlLHQpKSxufSxuLnB1cmdlPWZ1bmN0aW9uKGUsbil7dmFyIHIsYT0hMTtpZihnKHQpKXt2YXIgYz0oKHI9e30pLnBhdGg9bnx8Ii8iLHIuZXhwaXJlcz0iVGh1LCAwMSBKYW4gMTk3MCAwMDowMDowMSBHTVQiLHIpOygwLGkudzEpKCl8fChjWyJtYXgtYWdlIl09IjAiKSwoby5kZWxDb29raWV8fEspKGUsVShzLnFTLGMpKSxhPSEwfXJldHVybiBhfSxuKTtyZXR1cm4gcC5fY2tNZ3I9cCxwfWZ1bmN0aW9uIGcoZSl7aWYobnVsbD09PUgpe0g9ITE7dHJ5e0g9dm9pZCAwIT09KFN8fHt9KS5jb29raWV9Y2F0Y2godCl7KDAsby5rUCkoZSwyLDY4LCJDYW5ub3QgYWNjZXNzIGRvY3VtZW50LmNvb2tpZSAtICIrKDAsYS5qaikodCkse2V4Y2VwdGlvbjooMCxpLmVVKSh0KX0pfX1yZXR1cm4gSH1mdW5jdGlvbiBSKGUpe3ZhciB0PXt9O2lmKGUmJmVbci5SNV0pe3ZhciBuPSgwLGEubmQpKGUpW3IudzZdKCI7Iik7KDAsYS50TykobiwoZnVuY3Rpb24oZSl7aWYoZT0oMCxhLm5kKShlfHxzLnFTKSl7dmFyIG49ZVtyLm91XSgiPSIpOy0xPT09bj90W2VdPW51bGw6dFsoMCxhLm5kKShlW3IuemNdKDAsbikpXT0oMCxhLm5kKShlW3IuemNdKG4rMSkpfX0pKX1yZXR1cm4gdH1mdW5jdGlvbiBOKGUsdCl7cmV0dXJuKDAsYS5tZikoZVt0XSk/ZVt0XSgpOm51bGx9ZnVuY3Rpb24gVShlLHQpe3ZhciBuPWV8fHMucVM7cmV0dXJuKDAsYS5yVykodCwoZnVuY3Rpb24oZSx0KXtuKz0iOyAiK2UrKCgwLGEubGUpKHQpP3MucVM6Ij0iK3QpfSkpLG59ZnVuY3Rpb24geShlKXt2YXIgdD1zLnFTO2lmKFMpe3ZhciBuPVMuY29va2llfHxzLnFTO2YhPT1uJiYocD1SKG4pLGY9biksdD0oMCxhLm5kKShwW2VdfHxzLnFTKX1yZXR1cm4gdH1mdW5jdGlvbiBLKGUsdCl7UyYmKFMuY29va2llPWUrIj0iK3QpfWZ1bmN0aW9uIHcoZSl7cmV0dXJuISEoMCxhLkhEKShlKSYmKCEoISgwLGEuX1EpKGUsIkNQVSBpUGhvbmUgT1MgMTIiKSYmISgwLGEuX1EpKGUsImlQYWQ7IENQVSBPUyAxMiIpKXx8KCEhKCgwLGEuX1EpKGUsIk1hY2ludG9zaDsgSW50ZWwgTWFjIE9TIFggMTBfMTQiKSYmKDAsYS5fUSkoZSwiVmVyc2lvbi8iKSYmKDAsYS5fUSkoZSwiU2FmYXJpIikpfHwoISghKDAsYS5fUSkoZSwiTWFjaW50b3NoOyBJbnRlbCBNYWMgT1MgWCAxMF8xNCIpfHwhKDAsYS5JZCkoZSwiQXBwbGVXZWJLaXQvNjA1LjEuMTUgKEtIVE1MLCBsaWtlIEdlY2tvKSIpKXx8KCEoISgwLGEuX1EpKGUsIkNocm9tZS81IikmJiEoMCxhLl9RKShlLCJDaHJvbWUvNiIpKXx8KCEoISgwLGEuX1EpKGUsIlVucmVhbEVuZ2luZSIpfHwoMCxhLl9RKShlLCJDaHJvbWUiKSl8fCEoISgwLGEuX1EpKGUsIlVDQnJvd3Nlci8xMiIpJiYhKDAsYS5fUSkoZSwiVUNCcm93c2VyLzExIikpKSkpKSl9fSw2ODU1ODM6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0IjtuLmQodCx7RE86KCk9PnAsR1c6KCk9PmYsSmo6KCk9PlN9KTt2YXIgcixvPW4oODI2NDU0KSxpPW4oMTczNTk3KSxhPW4oNzMxNzQwKSxzPW4oODAzMTQ1KSxjPW4oNzA2MDM4KSx1PW4oOTI5NTQxKSxsPW4oMzgyNzc4KSxIPW4oNzU1OTkyKSxkPW51bGw7ZnVuY3Rpb24gZigpe3ZhciBlPXAoKTtyZXR1cm4gZVtpLnpjXSgwLDgpKyItIitlW2kuemNdKDgsMTIpKyItIitlW2kuemNdKDEyLDE2KSsiLSIrZVtpLnpjXSgxNiwyMCkrIi0iK2VbaS56Y10oMjApfWZ1bmN0aW9uIFMoKXt2YXIgZT0oMCxzLnIpKCk7cmV0dXJuIGUmJmUubm93P2Uubm93KCk6KDAsdS5tNikoKX1mdW5jdGlvbiBwKCl7Zm9yKHZhciBlLHQ9WyIwIiwiMSIsIjIiLCIzIiwiNCIsIjUiLCI2IiwiNyIsIjgiLCI5IiwiYSIsImIiLCJjIiwiZCIsImUiLCJmIl0sbj1sLnFTLHI9MDtyPDQ7cisrKW4rPXRbMTUmKGU9KDAsSC5fbCkoKSldK3RbZT4+NCYxNV0rdFtlPj44JjE1XSt0W2U+PjEyJjE1XSt0W2U+PjE2JjE1XSt0W2U+PjIwJjE1XSt0W2U+PjI0JjE1XSt0W2U+PjI4JjE1XTt2YXIgbz10WzgrKDMmKDAsSC5fbCkoKSl8MF07cmV0dXJuIG5baS5Kbl0oMCw4KStuW2kuSm5dKDksNCkrIjQiK25baS5Kbl0oMTMsMykrbytuW2kuSm5dKDE2LDMpK25baS5Kbl0oMTksMTIpfXZhciBDPXtfY2FuVXNlQ29va2llczp2b2lkIDAsaXNUeXBlb2Y6dS5ZbSxpc1VuZGVmaW5lZDp1Lm84LGlzTnVsbE9yVW5kZWZpbmVkOnUubGUsaGFzT3duUHJvcGVydHk6dS5ucixpc0Z1bmN0aW9uOnUubWYsaXNPYmplY3Q6dS5Lbixpc0RhdGU6dS5KXyxpc0FycmF5OnUua0osaXNFcnJvcjp1LlZaLGlzU3RyaW5nOnUuSEQsaXNOdW1iZXI6dS5oaixpc0Jvb2xlYW46dS5qbix0b0lTT1N0cmluZzp1Llk2LGFyckZvckVhY2g6dS50TyxhcnJJbmRleE9mOnUuVUEsYXJyTWFwOnUuTXIsYXJyUmVkdWNlOnUuWHosc3RyVHJpbTp1Lm5kLG9iakNyZWF0ZTpvLnB1LG9iaktleXM6dS5GWSxvYmpEZWZpbmVBY2Nlc3NvcnM6dS5sXyxhZGRFdmVudEhhbmRsZXI6Yy5JYixkYXRlTm93OnUubTYsaXNJRTpzLncxLGRpc2FibGVDb29raWVzOmZ1bmN0aW9uKCl7digpW2kuJGhdKCExKX0sbmV3R3VpZDpmLHBlcmZOb3c6UyxuZXdJZDpILnBaLHJhbmRvbVZhbHVlOkguYXoscmFuZG9tMzI6SC5fbCxtd2NSYW5kb21TZWVkOkguQ04sbXdjUmFuZG9tMzI6SC5GNixnZW5lcmF0ZVczQ0lkOnB9O2MucFosYy5wWixjLnBELGMucEQ7ZnVuY3Rpb24gdihlLHQpe3ZhciBuPSgwLGEua2opKGUsdCksbz1DLl9jYW5Vc2VDb29raWVzO3JldHVybiBudWxsPT09ZCYmKGQ9W10scj1vLCgwLHUubF8pKEMsIl9jYW5Vc2VDb29raWVzIiwoZnVuY3Rpb24oKXtyZXR1cm4gcn0pLChmdW5jdGlvbihlKXtyPWUsKDAsdS50TykoZCwoZnVuY3Rpb24odCl7dFtpLiRoXShlKX0pKX0pKSksLTE9PT0oMCx1LlVBKShkLG4pJiZkW2kuTVddKG4pLCgwLHUuam4pKG8pJiZuW2kuJGhdKG8pLCgwLHUuam4pKHIpJiZuW2kuJGhdKHIpLG59fSwyMzU2MjooZSx0LG4pPT57InVzZSBzdHJpY3QiO24uZCh0LHtKOigpPT5TLEs6KCk9PnB9KTt2YXIgcj1uKDIyMTkwOCksbz1uKDE3MzU5NyksaT1uKDkyOTU0MSksYT1uKDM4Mjc3OCkscz1uKDc1NTk5MiksYz1yLlJKLHU9IjIuOC4xMCIsbD0iLiIrKDAscy5wWikoNiksSD0wO2Z1bmN0aW9uIGQoZSl7cmV0dXJuIDE9PT1lW28ueHZdfHw5PT09ZVtvLnh2XXx8IStlW28ueHZdfWZ1bmN0aW9uIGYoZSx0KXt2YXIgbj10W2UuaWRdO2lmKCFuKXtuPXt9O3RyeXtkKHQpJiYoZnVuY3Rpb24oZSx0LG4pe2lmKGMpdHJ5e3JldHVybiBjKGUsdCx7dmFsdWU6bixlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLCEwfWNhdGNoKGUpe31yZXR1cm4hMX0odCxlLmlkLG4pfHwodFtlLmlkXT1uKSl9Y2F0Y2goZSl7fX1yZXR1cm4gbn1mdW5jdGlvbiBTKGUsdCl7cmV0dXJuIHZvaWQgMD09PXQmJih0PSExKSwoMCxpLkdmKShlK0grKysodD8iLjIuOC4xMCI6YS5xUykrbCl9ZnVuY3Rpb24gcChlKXt2YXIgdD17aWQ6UygiX2FpRGF0YS0iKyhlfHxhLnFTKSsiLiIrdSksYWNjZXB0OmZ1bmN0aW9uKGUpe3JldHVybiBkKGUpfSxnZXQ6ZnVuY3Rpb24oZSxuLHIsbyl7dmFyIGE9ZVt0LmlkXTtyZXR1cm4gYT9hWygwLGkuR2YpKG4pXToobyYmKChhPWYodCxlKSlbKDAsaS5HZikobildPXIpLHIpfSxraWxsOmZ1bmN0aW9uKGUsdCl7aWYoZSYmZVt0XSl0cnl7ZGVsZXRlIGVbdF19Y2F0Y2goZSl7fX19O3JldHVybiB0fX0sMjkyMzk6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0IjtuLmQodCx7ajooKT0+dSxwOigpPT5sfSk7dmFyIHIsbz1uKDE3MzU5NyksaT1uKDgwMzE0NSksYT1bImV2ZW50c1NlbnQiLCJldmVudHNEaXNjYXJkZWQiLCJldmVudHNTZW5kUmVxdWVzdCIsInBlcmZFdmVudCJdLHM9bnVsbDtmdW5jdGlvbiBjKGUsdCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG49YXJndW1lbnRzLHI9dSh0KTtpZihyKXt2YXIgaT1yLmxpc3RlbmVyO2kmJmlbZV0mJmlbZV1bby5aVl0oaSxuKX19fWZ1bmN0aW9uIHUoZSl7dmFyIHQsbj1zO3JldHVybiBufHwhMD09PWUuZGlzYWJsZURiZ0V4dHx8KG49c3x8KCh0PSgwLGkuYTgpKCJNaWNyb3NvZnQiKSkmJihzPXQuQXBwbGljYXRpb25JbnNpZ2h0cykscykpLG4/bi5DaHJvbWVEYmdFeHQ6bnVsbH1mdW5jdGlvbiBsKGUpe2lmKCFyKXtyPXt9O2Zvcih2YXIgdD0wO3Q8YVtvLlI1XTt0KyspclthW3RdXT1jKGFbdF0sZSl9cmV0dXJuIHJ9fSw2NjIzNzI6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0IjtuLmQodCx7QVE6KCk9PmYsalY6KCk9PkMsa1A6KCk9PnAsbFE6KCk9Pkgsdkg6KCk9PmR9KTt2YXIgcj1uKDkyMzgwNiksbz1uKDE3MzU5NyksaT1uKDI5MjM5KSxhPW4oODAzMTQ1KSxzPW4oOTI5NTQxKSxjPW4oMzgyNzc4KTtmdW5jdGlvbiB1KGUpe3JldHVybiBlPyciJytlW28uaTddKC9cIi9nLGMucVMpKyciJzpjLnFTfWZ1bmN0aW9uIGwoZSx0KXt2YXIgbj0oMCxhLmRyKSgpO2lmKG4pe3ZhciByPSJsb2ciO25bZV0mJihyPWUpLCgwLHMubWYpKG5bcl0pJiZuW3JdKHQpfX12YXIgSD1mdW5jdGlvbigpe2Z1bmN0aW9uIGUoZSx0LG4scil7dm9pZCAwPT09biYmKG49ITEpO3ZhciBpPXRoaXM7aVtvLkdjXT1lLGlbby5nVV09KG4/IkFJOiAiOiJBSSAoSW50ZXJuYWwpOiAiKStlO3ZhciBzPWMucVM7KDAsYS5uUykoKSYmKHM9KDAsYS54QSkoKS5zdHJpbmdpZnkocikpO3ZhciBsPSh0PyIgbWVzc2FnZToiK3UodCk6Yy5xUykrKHI/IiBwcm9wczoiK3Uocyk6Yy5xUyk7aVtvLmdVXSs9bH1yZXR1cm4gZS5kYXRhVHlwZT0iTWVzc2FnZURhdGEiLGV9KCk7ZnVuY3Rpb24gZChlLHQpe3JldHVybihlfHx7fSlbby5lWl18fG5ldyBmKHQpfXZhciBmPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSh0KXt0aGlzLmlkZW50aWZpZXI9IkRpYWdub3N0aWNMb2dnZXIiLHRoaXMucXVldWU9W107dmFyIG4sdSxkLGYsUz0wLHA9e307KDAsci5aKShlLHRoaXMsKGZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHIodCxuKXtpZighKFM+PWQpKXt2YXIgcj0hMCxpPSJBSVRSXyIrbltvLkdjXTtpZihwW2ldP3I9ITE6cFtpXT0hMCxyJiYodDw9dSYmKGUucXVldWVbby5NV10obiksUysrLEMoMT09PXQ/ImVycm9yIjoid2FybiIsbikpLFM9PT1kKSl7dmFyIGE9IkludGVybmFsIGV2ZW50cyB0aHJvdHRsZSBsaW1pdCBwZXIgUGFnZVZpZXcgcmVhY2hlZCBmb3IgdGhpcyBhcHAuIixzPW5ldyBIKDIzLGEsITEpO2UucXVldWVbby5NV10ocyksMT09PXQ/ZVtjLnlzXShhKTplW2MuY0xdKGEpfX19ZnVuY3Rpb24gQyhlLG4pe3ZhciByPSgwLGkuaikodHx8e30pO3ImJnJbby5tY10mJnJbby5tY10oZSxuKX0hZnVuY3Rpb24oZSl7bj0oMCxzLnY0KShlLmxvZ2dpbmdMZXZlbENvbnNvbGUsMCksdT0oMCxzLnY0KShlLmxvZ2dpbmdMZXZlbFRlbGVtZXRyeSwxKSxkPSgwLHMudjQpKGUubWF4TWVzc2FnZUxpbWl0LDI1KSxmPSgwLHMudjQpKGVbby5Gcl0sITEpfSh0fHx7fSksZS5jb25zb2xlTG9nZ2luZ0xldmVsPWZ1bmN0aW9uKCl7cmV0dXJuIG59LGUudGVsZW1ldHJ5TG9nZ2luZ0xldmVsPWZ1bmN0aW9uKCl7cmV0dXJuIHV9LGUubWF4SW50ZXJuYWxNZXNzYWdlTGltaXQ9ZnVuY3Rpb24oKXtyZXR1cm4gZH0sZVtvLkZyXT1mdW5jdGlvbigpe3JldHVybiBmfSxlLnRocm93SW50ZXJuYWw9ZnVuY3Rpb24odCxpLHUsbCxkKXt2b2lkIDA9PT1kJiYoZD0hMSk7dmFyIFM9bmV3IEgoaSx1LGQsbCk7aWYoZil0aHJvdygwLGEuZVUpKFMpO3ZhciB2PTE9PT10P2MueXM6Yy5jTDtpZigoMCxzLm84KShTW28uZ1VdKSlDKCJ0aHJvdyIrKDE9PT10PyJDcml0aWNhbCI6Ildhcm5pbmciKSxTKTtlbHNle2lmKGQpe3ZhciBoPStTW28uR2NdOyFwW2hdJiZuPj10JiYoZVt2XShTW28uZ1VdKSxwW2hdPSEwKX1lbHNlIG4+PXQmJmVbdl0oU1tvLmdVXSk7cih0LFMpfX0sZVtjLmNMXT1mdW5jdGlvbihlKXtsKCJ3YXJuIixlKSxDKCJ3YXJuaW5nIixlKX0sZVtjLnlzXT1mdW5jdGlvbihlKXtsKCJlcnJvciIsZSksQygiZXJyb3IiLGUpfSxlLnJlc2V0SW50ZXJuYWxNZXNzYWdlQ291bnQ9ZnVuY3Rpb24oKXtTPTAscD17fX0sZVtvLmprXT1yfSkpfXJldHVybiBlLl9faWVEeW49MSxlfSgpO2Z1bmN0aW9uIFMoZSl7cmV0dXJuIGV8fG5ldyBmfWZ1bmN0aW9uIHAoZSx0LG4scixvLGkpe3ZvaWQgMD09PWkmJihpPSExKSxTKGUpLnRocm93SW50ZXJuYWwodCxuLHIsbyxpKX1mdW5jdGlvbiBDKGUsdCl7UyhlKVtjLmNMXSh0KX19LDgwMzE0NTooZSx0LG4pPT57InVzZSBzdHJpY3QiO24uZCh0LHtKTzooKT0+TSxKajooKT0+QSxNRjooKT0+RCxNWDooKT0+ayxNZTooKT0+UixOdjooKT0+ZyxaMzooKT0+RixhODooKT0+bSxiJDooKT0+TyxjcDooKT0+QixkcjooKT0+SyxlVTooKT0+eCxnejooKT0+RSxqVzooKT0+VSxrJDooKT0+eSxuUzooKT0+YixyOigpPT53LHcxOigpPT5ULHhBOigpPT5QfSk7dmFyIHI9bigyMjE5MDgpLG89big4MjY0NTQpLGk9bigxNzM1OTcpLGE9big5Mjk1NDEpLHM9bigzODI3NzgpLGM9IndpbmRvdyIsdT0iSlNPTiIsbD0ibXNpZSIsSD0idHJpZGVudC8iLGQ9IlhNTEh0dHBSZXF1ZXN0IixmPW51bGwsUz1udWxsLHA9ITEsQz1udWxsLHY9bnVsbDtmdW5jdGlvbiBoKGUsdCl7dmFyIG49ITE7aWYoZSl7dHJ5e2lmKCEobj10IGluIGUpKXt2YXIgbz1lW3IuaEJdO28mJihuPXQgaW4gbyl9fWNhdGNoKGUpe31pZighbil0cnl7dmFyIGk9bmV3IGU7bj0hKDAsYS5vOCkoaVt0XSl9Y2F0Y2goZSl7fX1yZXR1cm4gbn1mdW5jdGlvbiBtKGUpe3ZhciB0PSgwLG8uUmQpKCk7cmV0dXJuIHQmJnRbZV0/dFtlXTplPT09YyYmSSgpP3dpbmRvdzpudWxsfWZ1bmN0aW9uIEkoKXtyZXR1cm4gQm9vbGVhbih0eXBlb2Ygd2luZG93PT09ci5mSyYmd2luZG93KX1mdW5jdGlvbiBBKCl7cmV0dXJuIEkoKT93aW5kb3c6bShjKX1mdW5jdGlvbiBnKCl7cmV0dXJuIEJvb2xlYW4odHlwZW9mIGRvY3VtZW50PT09ci5mSyYmZG9jdW1lbnQpfWZ1bmN0aW9uIFIoKXtyZXR1cm4gZygpP2RvY3VtZW50Om0oImRvY3VtZW50Iil9ZnVuY3Rpb24gTigpe3JldHVybiBCb29sZWFuKHR5cGVvZiBuYXZpZ2F0b3I9PT1yLmZLJiZuYXZpZ2F0b3IpfWZ1bmN0aW9uIFUoKXtyZXR1cm4gTigpP25hdmlnYXRvcjptKCJuYXZpZ2F0b3IiKX1mdW5jdGlvbiB5KGUpe2lmKGUmJnApe3ZhciB0PW0oIl9fbW9ja0xvY2F0aW9uIik7aWYodClyZXR1cm4gdH1yZXR1cm4gdHlwZW9mIGxvY2F0aW9uPT09ci5mSyYmbG9jYXRpb24/bG9jYXRpb246bSgibG9jYXRpb24iKX1mdW5jdGlvbiBLKCl7cmV0dXJuIHR5cGVvZiBjb25zb2xlIT09ci5qQT9jb25zb2xlOm0oImNvbnNvbGUiKX1mdW5jdGlvbiB3KCl7cmV0dXJuIG0oInBlcmZvcm1hbmNlIil9ZnVuY3Rpb24gYigpe3JldHVybiBCb29sZWFuKHR5cGVvZiBKU09OPT09ci5mSyYmSlNPTnx8bnVsbCE9PW0odSkpfWZ1bmN0aW9uIFAoKXtyZXR1cm4gYigpP0pTT058fG0odSk6bnVsbH1mdW5jdGlvbiBrKCl7cmV0dXJuIG0oImNyeXB0byIpfWZ1bmN0aW9uIEUoKXtyZXR1cm4gbSgibXNDcnlwdG8iKX1mdW5jdGlvbiBPKCl7dmFyIGU9VSgpO3JldHVybiEoIWV8fCFlLnByb2R1Y3QpJiYiUmVhY3ROYXRpdmUiPT09ZS5wcm9kdWN0fWZ1bmN0aW9uIFQoKXt2YXIgZT1VKCk7aWYoZSYmKGVbaS5xVl0hPT1TfHxudWxsPT09Zikpe3ZhciB0PSgoUz1lW2kucVZdKXx8cy5xUylbaS5UMV0oKTtmPSgwLGEuX1EpKHQsbCl8fCgwLGEuX1EpKHQsSCl9cmV0dXJuIGZ9ZnVuY3Rpb24geChlKXt2YXIgdD1PYmplY3Rbci5oQl0udG9TdHJpbmdbaS5fU10oZSksbj1zLnFTO3JldHVybiJbb2JqZWN0IEVycm9yXSI9PT10P249Insgc3RhY2s6ICciK2Uuc3RhY2srIicsIG1lc3NhZ2U6ICciK2UubWVzc2FnZSsiJywgbmFtZTogJyIrZVtpLkldKyInIjpiKCkmJihuPVAoKS5zdHJpbmdpZnkoZSkpLHQrbn1mdW5jdGlvbiBEKCl7cmV0dXJuIG51bGw9PT12JiYodj1OKCkmJkJvb2xlYW4oVSgpLnNlbmRCZWFjb24pKSx2fWZ1bmN0aW9uIE0oZSl7dmFyIHQ9ITE7dHJ5e3Q9ISFtKCJmZXRjaCIpO3ZhciBuPW0oIlJlcXVlc3QiKTt0JiZlJiZuJiYodD1oKG4sImtlZXBhbGl2ZSIpKX1jYXRjaChlKXt9cmV0dXJuIHR9ZnVuY3Rpb24gQigpe3JldHVybiBudWxsPT09QyYmKEM9dHlwZW9mIFhEb21haW5SZXF1ZXN0IT09ci5qQSkmJkYoKSYmKEM9QyYmIWgobShkKSwid2l0aENyZWRlbnRpYWxzIikpLEN9ZnVuY3Rpb24gRigpe3ZhciBlPSExO3RyeXtlPSEhbShkKX1jYXRjaChlKXt9cmV0dXJuIGV9fSw3MDYwMzg6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0IjtuLmQodCx7Qzk6KCk9Pk0sSWI6KCk9PmssSkE6KCk9PngsVEo6KCk9PkQsWWw6KCk9PkYsYzk6KCk9PlQsalU6KCk9PnksbkQ6KCk9PkIscEQ6KCk9PlAscFo6KCk9PmJ9KTt2YXIgcj1uKDE3MzU5Nyksbz1uKDIzNTYyKSxpPW4oODAzMTQ1KSxhPW4oOTI5NTQxKSxzPW4oMzgyNzc4KSxjPSJldmVudHMiLHU9InZpc2liaWxpdHljaGFuZ2UiLGw9InBhZ2VoaWRlIixIPSJwYWdlc2hvdyIsZD0idW5sb2FkIixmPSJiZWZvcmV1bmxvYWQiLFM9KDAsby5KKSgiYWlFdnRQYWdlSGlkZSIpLHA9KDAsby5KKSgiYWlFdnRQYWdlU2hvdyIpLEM9L1wuW1wuXSsvZyx2PS9bXC5dKyQvLGg9MSxtPSgwLG8uSykoImV2ZW50cyIpLEk9L14oW14uXSopKD86XC4oLispfCkvO2Z1bmN0aW9uIEEoZSl7cmV0dXJuIGUmJmVbci5pN10/ZVtyLmk3XSgvXltcc1wuXSt8KD89W1xzXC5dKVtcLlxzXSskL2cscy5xUyk6ZX1mdW5jdGlvbiBnKGUsdCl7dmFyIG47aWYodCl7dmFyIG89cy5xUzsoMCxhLmtKKSh0KT8obz1zLnFTLCgwLGEudE8pKHQsKGZ1bmN0aW9uKGUpeyhlPUEoZSkpJiYoIi4iIT09ZVswXSYmKGU9Ii4iK2UpLG8rPWUpfSkpKTpvPUEodCksbyYmKCIuIiE9PW9bMF0mJihvPSIuIitvKSxlPShlfHxzLnFTKStvKX12YXIgaT1JLmV4ZWMoZXx8cy5xUyl8fFtdO3JldHVybihuPXt9KVtyLlA2XT1pWzFdLG4ubnM9KGlbMl18fHMucVMpLnJlcGxhY2UoQywiLiIpLnJlcGxhY2UodixzLnFTKVtyLnc2XSgiLiIpLnNvcnQoKS5qb2luKCIuIiksbn1mdW5jdGlvbiBSKGUsdCxuKXt2b2lkIDA9PT1uJiYobj0hMCk7dmFyIHI9bS5nZXQoZSxjLHt9LG4pLG89clt0XTtyZXR1cm4gb3x8KG89clt0XT1bXSksb31mdW5jdGlvbiBOKGUsdCxuLG8pe2UmJnQmJnRbci5QNl0mJihlLnJlbW92ZUV2ZW50TGlzdGVuZXI/ZS5yZW1vdmVFdmVudExpc3RlbmVyKHRbci5QNl0sbixvKTplLmRldGFjaEV2ZW50JiZlLmRldGFjaEV2ZW50KCJvbiIrdFtyLlA2XSxuKSl9ZnVuY3Rpb24gVShlLHQsbixvKXtmb3IodmFyIGk9dFtyLlI1XTtpLS07KXt2YXIgYT10W2ldO2EmJihuLm5zJiZuLm5zIT09YS5ldnROYW1lLm5zfHxvJiYhbyhhKXx8KE4oZSxhLmV2dE5hbWUsYVtyLktuXSxhLmNhcHR1cmUpLHRbci5jYl0oaSwxKSkpfX1mdW5jdGlvbiB5KGUsdCl7cmV0dXJuIHQ/ZygieHgiLCgwLGEua0opKHQpP1tlXS5jb25jYXQodCk6W2UsdF0pLm5zW3IudzZdKCIuIik6ZX1mdW5jdGlvbiBLKGUsdCxuLG8saSl7dmFyIGE7dm9pZCAwPT09aSYmKGk9ITEpO3ZhciBzPSExO2lmKGUpdHJ5e3ZhciBjPWcodCxvKTtpZihzPWZ1bmN0aW9uKGUsdCxuLG8pe3ZhciBpPSExO3JldHVybiBlJiZ0JiZ0W3IuUDZdJiZuJiYoZS5hZGRFdmVudExpc3RlbmVyPyhlLmFkZEV2ZW50TGlzdGVuZXIodFtyLlA2XSxuLG8pLGk9ITApOmUuYXR0YWNoRXZlbnQmJihlLmF0dGFjaEV2ZW50KCJvbiIrdFtyLlA2XSxuKSxpPSEwKSksaX0oZSxjLG4saSkscyYmbS5hY2NlcHQoZSkpe3ZhciB1PSgoYT17Z3VpZDpoKyssZXZ0TmFtZTpjfSlbci5Lbl09bixhLmNhcHR1cmU9aSxhKTtSKGUsYy50eXBlKVtyLk1XXSh1KX19Y2F0Y2goZSl7fXJldHVybiBzfWZ1bmN0aW9uIHcoZSx0LG4sbyxpKXtpZih2b2lkIDA9PT1pJiYoaT0hMSksZSl0cnl7dmFyIHM9Zyh0LG8pLHU9ITE7IWZ1bmN0aW9uKGUsdCxuKXtpZih0W3IuUDZdKVUoZSxSKGUsdFtyLlA2XSksdCxuKTtlbHNle3ZhciBvPW0uZ2V0KGUsYyx7fSk7KDAsYS5yVykobywoZnVuY3Rpb24ocixvKXtVKGUsbyx0LG4pfSkpLDA9PT0oMCxhLkZZKShvKVtyLlI1XSYmbS5raWxsKGUsYyl9fShlLHMsKGZ1bmN0aW9uKGUpe3JldHVybiEoKCFzLm5zfHxuKSYmZVtyLktuXSE9PW4pJiYodT0hMCwhMCl9KSksdXx8TihlLHMsbixpKX1jYXRjaChlKXt9fWZ1bmN0aW9uIGIoZSx0LG4scil7cmV0dXJuIHZvaWQgMD09PXImJihyPSExKSxLKGUsdCxuLG51bGwscil9ZnVuY3Rpb24gUChlLHQsbixyKXt2b2lkIDA9PT1yJiYocj0hMSksdyhlLHQsbixudWxsLHIpfWZ1bmN0aW9uIGsoZSx0LG4pe3ZhciByPSExLG89KDAsaS5KaikoKTtvJiYocj1LKG8sZSx0LG4pLHI9SyhvLmJvZHksZSx0LG4pfHxyKTt2YXIgYT0oMCxpLk1lKSgpO3JldHVybiBhJiYocj1LKGEsZSx0LG4pfHxyKSxyfWZ1bmN0aW9uIEUoZSx0LG4sbyl7dmFyIGk9ITE7cmV0dXJuIHQmJmUmJmVbci5SNV0+MCYmKDAsYS50TykoZSwoZnVuY3Rpb24oZSl7ZSYmKG4mJi0xIT09KDAsYS5VQSkobixlKXx8KGk9ayhlLHQsbyl8fGkpKX0pKSxpfWZ1bmN0aW9uIE8oZSx0LG4pe2UmJigwLGEua0opKGUpJiYoMCxhLnRPKShlLChmdW5jdGlvbihlKXtlJiZmdW5jdGlvbihlLHQsbil7dmFyIHI9KDAsaS5KaikoKTtyJiYodyhyLGUsdCxuKSx3KHIuYm9keSxlLHQsbikpO3ZhciBvPSgwLGkuTWUpKCk7byYmdyhvLGUsdCxuKX0oZSx0LG4pfSkpfWZ1bmN0aW9uIFQoZSx0LG4pe3JldHVybiBmdW5jdGlvbihlLHQsbixvKXt2YXIgaT0hMTtyZXR1cm4gdCYmZSYmKDAsYS5rSikoZSkmJiEoaT1FKGUsdCxuLG8pKSYmbiYmbltyLlI1XT4wJiYoaT1FKGUsdCxudWxsLG8pKSxpfShbZixkLGxdLGUsdCxuKX1mdW5jdGlvbiB4KGUsdCl7TyhbZixkLGxdLGUsdCl9ZnVuY3Rpb24gRChlLHQsbil7dmFyIHI9eShTLG4pLG89RShbbF0sZSx0LHIpO3JldHVybiB0JiYtMSE9PSgwLGEuVUEpKHQsdSl8fChvPUUoW3VdLChmdW5jdGlvbih0KXt2YXIgbj0oMCxpLk1lKSgpO2UmJm4mJiJoaWRkZW4iPT09bi52aXNpYmlsaXR5U3RhdGUmJmUodCl9KSx0LHIpfHxvKSwhbyYmdCYmKG89RChlLG51bGwsbikpLG99ZnVuY3Rpb24gTShlLHQpe3ZhciBuPXkoUyx0KTtPKFtsXSxlLG4pLE8oW3VdLG51bGwsbil9ZnVuY3Rpb24gQihlLHQsbil7dmFyIHI9eShwLG4pLG89RShbSF0sZSx0LHIpO3JldHVybiEobz1FKFt1XSwoZnVuY3Rpb24odCl7dmFyIG49KDAsaS5NZSkoKTtlJiZuJiYidmlzaWJsZSI9PT1uLnZpc2liaWxpdHlTdGF0ZSYmZSh0KX0pLHQscil8fG8pJiZ0JiYobz1CKGUsbnVsbCxuKSksb31mdW5jdGlvbiBGKGUsdCl7dmFyIG49eShwLHQpO08oW0hdLGUsbiksTyhbdV0sbnVsbCxuKX19LDkyOTU0MTooZSx0LG4pPT57InVzZSBzdHJpY3QiO24uZCh0LHtBeDooKT0+ZGUsQlg6KCk9PkssRkw6KCk9PnRlLEZZOigpPT5YLEdmOigpPT5rLEhEOigpPT5GLElkOigpPT5PLEpfOigpPT5ELEtuOigpPT5iLE1yOigpPT5aLE9pOigpPT5sZSxVQTooKT0+cSxWWjooKT0+QixWYjooKT0+SGUsWHo6KCk9PnosWTY6KCk9PmosWW06KCk9Pk4sX0E6KCk9PmVlLF9ROigpPT54LF95OigpPT5jZSxmUTooKT0+c2UsaGo6KCk9Pkwsamo6KCk9PnJlLGpuOigpPT5WLGtKOigpPT5NLGxfOigpPT5fLGxlOigpPT55LG02OigpPT5uZSxtZjooKT0+UCxtbTooKT0+ZmUsbmQ6KCk9PkcsbnI6KCk9Pncsbzg6KCk9PlUscUs6KCk9PmllLHJXOigpPT5FLHNPOigpPT5vZSx0TzooKT0+Six2NDooKT0+YWUseGU6KCk9PlR9KTt2YXIgcj1uKDIyMTkwOCksbz1uKDgyNjQ1NCksaT1uKDE3MzU5NyksYT1uKDM4Mjc3OCkscz0iY29uc3RydWN0b3IiLGM9ci5SSix1PXIuUHcuZnJlZXplLGw9KHIuUHcuc2VhbCxyLlB3LmtleXMpLEg9U3RyaW5nW3IuaEJdLGQ9SC50cmltLGY9SC5lbmRzV2l0aCxTPUguc3RhcnRzV2l0aCxwPURhdGVbci5oQl0udG9JU09TdHJpbmcsQz1BcnJheS5pc0FycmF5LHY9ci5WNC50b1N0cmluZyxoPXIuQ1kudG9TdHJpbmcsbT1oW2kuX1NdKHIuUHcpLEk9Ly0oW2Etel0pL2csQT0vKFteXHdcZF8kXSkvZyxnPS9eKFxkK1tcd1xkXyRdKS8sUj1PYmplY3QuZ2V0UHJvdG90eXBlT2Y7ZnVuY3Rpb24gTihlLHQpe3JldHVybiB0eXBlb2YgZT09PXR9ZnVuY3Rpb24gVShlKXtyZXR1cm4gdm9pZCAwPT09ZXx8dHlwZW9mIGU9PT1yLmpBfWZ1bmN0aW9uIHkoZSl7cmV0dXJuIG51bGw9PT1lfHxVKGUpfWZ1bmN0aW9uIEsoZSl7cmV0dXJuIXkoZSl9ZnVuY3Rpb24gdyhlLHQpe3JldHVybiEoIWV8fCFyLkNZW2kuX1NdKGUsdCkpfWZ1bmN0aW9uIGIoZSl7cmV0dXJuISghZXx8dHlwZW9mIGUhPT1yLmZLKX1mdW5jdGlvbiBQKGUpe3JldHVybiEoIWV8fHR5cGVvZiBlIT09ci5jYil9ZnVuY3Rpb24gayhlKXt2YXIgdD1lO3JldHVybiB0JiZGKHQpJiYodD0odD0odD10W2kuaTddKEksKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQudG9VcHBlckNhc2UoKX0pKSlbaS5pN10oQSwiXyIpKVtpLmk3XShnLChmdW5jdGlvbihlLHQpe3JldHVybiJfIit0fSkpKSx0fWZ1bmN0aW9uIEUoZSx0KXtpZihlKWZvcih2YXIgbiBpbiBlKXIuQ1lbaS5fU10oZSxuKSYmdFtpLl9TXShlLG4sZVtuXSl9ZnVuY3Rpb24gTyhlLHQpe3ZhciBuPSExO3JldHVybiBlJiZ0JiYhKG49ZT09PXQpJiYobj1mP2UuZW5kc1dpdGgodCk6ZnVuY3Rpb24oZSx0KXt2YXIgbj0hMSxyPXQ/dFtpLlI1XTowLG89ZT9lW2kuUjVdOjA7aWYociYmbyYmbz49ciYmIShuPWU9PT10KSl7Zm9yKHZhciBhPW8tMSxzPXItMTtzPj0wO3MtLSl7aWYoZVthXSE9dFtzXSlyZXR1cm4hMTthLS19bj0hMH1yZXR1cm4gbn0oZSx0KSksbn1mdW5jdGlvbiBUKGUsdCl7dmFyIG49ITE7cmV0dXJuIGUmJnQmJiEobj1lPT09dCkmJihuPVM/ZS5zdGFydHNXaXRoKHQpOmZ1bmN0aW9uKGUsdCl7dmFyIG49ITEscj10P3RbaS5SNV06MDtpZihlJiZyJiZlW2kuUjVdPj1yJiYhKG49ZT09PXQpKXtmb3IodmFyIG89MDtvPHI7bysrKWlmKGVbb10hPT10W29dKXJldHVybiExO249ITB9cmV0dXJuIG59KGUsdCkpLG59ZnVuY3Rpb24geChlLHQpe3JldHVybiEoIWV8fCF0KSYmLTEhPT1lW2kub3VdKHQpfWZ1bmN0aW9uIEQoZSl7cmV0dXJuISghZXx8IltvYmplY3QgRGF0ZV0iIT09dltpLl9TXShlKSl9dmFyIE09Q3x8ZnVuY3Rpb24oZSl7cmV0dXJuISghZXx8IltvYmplY3QgQXJyYXldIiE9PXZbaS5fU10oZSkpfTtmdW5jdGlvbiBCKGUpe3JldHVybiEoIWV8fCJbb2JqZWN0IEVycm9yXSIhPT12W2kuX1NdKGUpKX1mdW5jdGlvbiBGKGUpe3JldHVybiJzdHJpbmciPT10eXBlb2YgZX1mdW5jdGlvbiBMKGUpe3JldHVybiJudW1iZXIiPT10eXBlb2YgZX1mdW5jdGlvbiBWKGUpe3JldHVybiJib29sZWFuIj09dHlwZW9mIGV9ZnVuY3Rpb24gVyhlKXt2YXIgdD0hMTtpZihlJiYib2JqZWN0Ij09dHlwZW9mIGUpe3ZhciBuPVI/UihlKTpmdW5jdGlvbihlKXtpZihlKXtpZihSKXJldHVybiBSKGUpO3ZhciB0PWUuX19wcm90b19ffHxlW3IuaEJdfHxlLmNvbnN0cnVjdG9yO2lmKHQpcmV0dXJuIHR9cmV0dXJuIG51bGx9KGUpO24/KG4uY29uc3RydWN0b3ImJnIuQ1lbaS5fU10obixzKSYmKG49bi5jb25zdHJ1Y3RvciksdD10eXBlb2Ygbj09PXIuY2ImJmhbaS5fU10obik9PT1tKTp0PSEwfXJldHVybiB0fWZ1bmN0aW9uIGooZSl7aWYoZSlyZXR1cm4gcD9lLnRvSVNPU3RyaW5nKCk6ZnVuY3Rpb24oZSl7aWYoZSYmZS5nZXRVVENGdWxsWWVhcil7dmFyIHQ9ZnVuY3Rpb24oZSl7dmFyIHQ9U3RyaW5nKGUpO3JldHVybiAxPT09dFtpLlI1XSYmKHQ9IjAiK3QpLHR9O3JldHVybiBlLmdldFVUQ0Z1bGxZZWFyKCkrIi0iK3QoZS5nZXRVVENNb250aCgpKzEpKyItIit0KGUuZ2V0VVRDRGF0ZSgpKSsiVCIrdChlLmdldFVUQ0hvdXJzKCkpKyI6Iit0KGUuZ2V0VVRDTWludXRlcygpKSsiOiIrdChlLmdldFVUQ1NlY29uZHMoKSkrIi4iK1N0cmluZygoZS5nZXRVVENNaWxsaXNlY29uZHMoKS8xZTMpLnRvRml4ZWQoMykpLnNsaWNlKDIsNSkrIloifX0oZSl9ZnVuY3Rpb24gSihlLHQsbil7dmFyIHI9ZVtpLlI1XTt0cnl7Zm9yKHZhciBvPTA7bzxyJiYoIShvIGluIGUpfHwtMSE9PXRbaS5fU10obnx8ZSxlW29dLG8sZSkpO28rKyk7fWNhdGNoKGUpe319ZnVuY3Rpb24gcShlLHQsbil7aWYoZSl7aWYoZS5pbmRleE9mKXJldHVybiBlLmluZGV4T2YodCxuKTt2YXIgcj1lW2kuUjVdLG89bnx8MDt0cnl7Zm9yKHZhciBhPU1hdGgubWF4KG8+PTA/bzpyLU1hdGguYWJzKG8pLDApO2E8cjthKyspaWYoYSBpbiBlJiZlW2FdPT09dClyZXR1cm4gYX1jYXRjaChlKXt9fXJldHVybi0xfWZ1bmN0aW9uIFooZSx0LG4pe3ZhciByO2lmKGUpe2lmKGUubWFwKXJldHVybiBlLm1hcCh0LG4pO3ZhciBvPWVbaS5SNV0sYT1ufHxlO3I9bmV3IEFycmF5KG8pO3RyeXtmb3IodmFyIHM9MDtzPG87cysrKXMgaW4gZSYmKHJbc109dFtpLl9TXShhLGVbc10sZSkpfWNhdGNoKGUpe319cmV0dXJuIHJ9ZnVuY3Rpb24geihlLHQsbil7dmFyIHI7aWYoZSl7aWYoZS5yZWR1Y2UpcmV0dXJuIGUucmVkdWNlKHQsbik7dmFyIG89ZVtpLlI1XSxhPTA7aWYoYXJndW1lbnRzW2kuUjVdPj0zKXI9YXJndW1lbnRzWzJdO2Vsc2V7Zm9yKDthPG8mJiEoYSBpbiBlKTspYSsrO3I9ZVthKytdfWZvcig7YTxvOylhIGluIGUmJihyPXQocixlW2FdLGEsZSkpLGErK31yZXR1cm4gcn1mdW5jdGlvbiBHKGUpe3JldHVybiBlJiYoZT1kJiZlLnRyaW0/ZS50cmltKCk6ZVtpLmk3XT9lW2kuaTddKC9eXHMrfCg/PVxzKVxzKyQvZyxhLnFTKTplKSxlfXZhciBZPSF7dG9TdHJpbmc6bnVsbH0ucHJvcGVydHlJc0VudW1lcmFibGUoInRvU3RyaW5nIiksUT1bInRvU3RyaW5nIiwidG9Mb2NhbGVTdHJpbmciLCJ2YWx1ZU9mIiwiaGFzT3duUHJvcGVydHkiLCJpc1Byb3RvdHlwZU9mIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJjb25zdHJ1Y3RvciJdO2Z1bmN0aW9uIFgoZSl7dmFyIHQ9dHlwZW9mIGU7aWYodD09PXIuY2J8fHQ9PT1yLmZLJiZudWxsIT09ZXx8KDAsby5aVSkoIm9iaktleXMgY2FsbGVkIG9uIG5vbi1vYmplY3QiKSwhWSYmbClyZXR1cm4gbChlKTt2YXIgbj1bXTtmb3IodmFyIGEgaW4gZSllJiZyLkNZW2kuX1NdKGUsYSkmJm5baS5NV10oYSk7aWYoWSlmb3IodmFyIHM9UVtpLlI1XSxjPTA7YzxzO2MrKyllJiZyLkNZW2kuX1NdKGUsUVtjXSkmJm5baS5NV10oUVtjXSk7cmV0dXJuIG59ZnVuY3Rpb24gXyhlLHQsbixyKXtpZihjKXRyeXt2YXIgbz17ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9O3JldHVybiBuJiYoby5nZXQ9biksciYmKG8uc2V0PXIpLGMoZSx0LG8pLCEwfWNhdGNoKGUpe31yZXR1cm4hMX1mdW5jdGlvbiAkKGUpe3JldHVybiBlfWZ1bmN0aW9uIGVlKGUpe3JldHVybiB1JiZFKGUsKGZ1bmN0aW9uKGUsdCl7KE0odCl8fGIodCkpJiZ1KHQpfSkpLHRlKGUpfXZhciB0ZT11fHwkO2Z1bmN0aW9uIG5lKCl7dmFyIGU9RGF0ZTtyZXR1cm4gZS5ub3c/ZS5ub3coKToobmV3IGUpLmdldFRpbWUoKX1mdW5jdGlvbiByZShlKXtyZXR1cm4gQihlKT9lW2kuSV06YS5xU31mdW5jdGlvbiBvZShlLHQsbixyLG8pe3ZhciBpPW47cmV0dXJuIGUmJigoaT1lW3RdKT09PW58fG8mJiFvKGkpfHxyJiYhcihuKXx8KGk9bixlW3RdPWkpKSxpfWZ1bmN0aW9uIGllKGUsdCxuKXt2YXIgcjtyZXR1cm4gZT8hKHI9ZVt0XSkmJnkocikmJihyPVUobik/e306bixlW3RdPXIpOnI9VShuKT97fTpuLHJ9ZnVuY3Rpb24gYWUoZSx0KXtyZXR1cm4geShlKT90OmV9ZnVuY3Rpb24gc2UoZSl7cmV0dXJuISFlfWZ1bmN0aW9uIGNlKGUpe3Rocm93IG5ldyBFcnJvcihlKX1mdW5jdGlvbiB1ZShlLHQpe3ZhciBuPW51bGwscj1udWxsO3JldHVybiBQKGUpP249ZTpyPWUsZnVuY3Rpb24oKXt2YXIgZT1hcmd1bWVudHM7aWYobiYmKHI9bigpKSxyKXJldHVybiByW3RdW2kuWlZdKHIsZSl9fWZ1bmN0aW9uIGxlKGUsdCxuLHIsbyl7ZSYmdCYmbiYmKCExIT09b3x8VShlW3RdKSkmJihlW3RdPXVlKG4scikpfWZ1bmN0aW9uIEhlKGUsdCxuLHIpe3JldHVybiBlJiZ0JiZiKGUpJiZNKG4pJiZKKG4sKGZ1bmN0aW9uKG4pe0YobikmJmxlKGUsbix0LG4scil9KSksZX1mdW5jdGlvbiBkZShlKXtyZXR1cm4gZSYmci5ybCYmKGU9KDAsci5QdykoKDAsci5ybCkoe30sZSkpKSxlfWZ1bmN0aW9uIGZlKGUsdCxuLG8sYSxzKXt2YXIgYz1hcmd1bWVudHMsdT1jWzBdfHx7fSxsPWNbaS5SNV0sSD0hMSxkPTE7Zm9yKGw+MCYmVih1KSYmKEg9dSx1PWNbZF18fHt9LGQrKyksYih1KXx8KHU9e30pO2Q8bDtkKyspe3ZhciBmPWNbZF0sUz1NKGYpLHA9YihmKTtmb3IodmFyIEMgaW4gZil7dmFyIHY9UyYmQyBpbiBmfHxwJiZyLkNZW2kuX1NdKGYsQyk7aWYodil7dmFyIGg9ZltDXSxtPXZvaWQgMDtpZihIJiZoJiYoKG09TShoKSl8fFcoaCkpKXt2YXIgST11W0NdO20/TShJKXx8KEk9W10pOlcoSSl8fChJPXt9KSxoPWZlKEgsSSxoKX12b2lkIDAhPT1oJiYodVtDXT1oKX19fXJldHVybiB1fX0sMzgyNzc4OihlLHQsbik9PnsidXNlIHN0cmljdCI7bi5kKHQseyRGOigpPT5mLEMkOigpPT5wLEROOigpPT5hLFo6KCk9Pm8sWmg6KCk9PmMsY0w6KCk9PnYsZl86KCk9PlMsaEw6KCk9PmwsanM6KCk9PnUsa2w6KCk9PmgsbUU6KCk9PnMsb1Y6KCk9PmkscVM6KCk9PnIsdUM6KCk9PmQseWk6KCk9PkgseXM6KCk9PkN9KTt2YXIgcj0iIixvPSJjaGFubmVscyIsaT0iY29yZSIsYT0iY3JlYXRlUGVyZk1nciIscz0iZGlzYWJsZWQiLGM9ImV4dGVuc2lvbkNvbmZpZyIsdT0iZXh0ZW5zaW9ucyIsbD0icHJvY2Vzc1RlbGVtZXRyeSIsSD0icHJpb3JpdHkiLGQ9ImV2ZW50c1NlbnQiLGY9ImV2ZW50c0Rpc2NhcmRlZCIsUz0iZXZlbnRzU2VuZFJlcXVlc3QiLHA9InBlcmZFdmVudCIsQz0iZXJyb3JUb0NvbnNvbGUiLHY9Indhcm5Ub0NvbnNvbGUiLGg9ImdldFBlcmZNZ3IifSwzMTcxNDA6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0IjtuLmQodCx7Sms6KCk9PnUsTG06KCk9PkgsajU6KCk9PmR9KTt2YXIgcj1uKDkyMzgwNiksbz1uKDE3MzU5NyksaT1uKDkyOTU0MSksYT1uKDM4Mjc3OCkscz1udWxsLGM9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKHQsbixyKXt2YXIgYSxzPXRoaXMsYz0hMTsocy5zdGFydD0oMCxpLm02KSgpLHNbby5JXT10LHNbby5kXT1yLHNbby5QTF09ZnVuY3Rpb24oKXtyZXR1cm4hMX0sKDAsaS5tZikobikpJiYoYz0oMCxpLmxfKShzLCJwYXlsb2FkIiwoZnVuY3Rpb24oKXtyZXR1cm4hYSYmKDAsaS5tZikobikmJihhPW4oKSxuPW51bGwpLGF9KSkpO3Nbby5UXT1mdW5jdGlvbih0KXtyZXR1cm4gdD90PT09ZS5QYXJlbnRDb250ZXh0S2V5fHx0PT09ZS5DaGlsZHJlbkNvbnRleHRLZXk/c1t0XToocy5jdHh8fHt9KVt0XTpudWxsfSxzW28ud3VdPWZ1bmN0aW9uKHQsbil7aWYodClpZih0PT09ZS5QYXJlbnRDb250ZXh0S2V5KXNbdF18fChzW28uUExdPWZ1bmN0aW9uKCl7cmV0dXJuITB9KSxzW3RdPW47ZWxzZSBpZih0PT09ZS5DaGlsZHJlbkNvbnRleHRLZXkpc1t0XT1uO2Vsc2V7KHMuY3R4PXMuY3R4fHx7fSlbdF09bn19LHNbby5LbV09ZnVuY3Rpb24oKXt2YXIgdD0wLHI9c1tvLlRdKGUuQ2hpbGRyZW5Db250ZXh0S2V5KTtpZigoMCxpLmtKKShyKSlmb3IodmFyIGE9MDthPHJbby5SNV07YSsrKXt2YXIgdT1yW2FdO3UmJih0Kz11W28uWl9dKX1zW28uWl9dPSgwLGkubTYpKCktcy5zdGFydCxzLmV4VGltZT1zW28uWl9dLXQsc1tvLkttXT1mdW5jdGlvbigpe30sIWMmJigwLGkubWYpKG4pJiYocy5wYXlsb2FkPW4oKSl9fXJldHVybiBlLlBhcmVudENvbnRleHRLZXk9InBhcmVudCIsZS5DaGlsZHJlbkNvbnRleHRLZXk9ImNoaWxkRXZ0cyIsZX0oKSx1PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSh0KXt0aGlzLmN0eD17fSwoMCxyLlopKGUsdGhpcywoZnVuY3Rpb24oZSl7ZS5jcmVhdGU9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBuZXcgYyhlLHQsbil9LGUuZmlyZT1mdW5jdGlvbihlKXtlJiYoZVtvLkttXSgpLHQmJigwLGkubWYpKHRbYS5DJF0pJiZ0W2EuQyRdKGUpKX0sZVtvLnd1XT1mdW5jdGlvbih0LG4pe3QmJigoZS5jdHg9ZS5jdHh8fHt9KVt0XT1uKX0sZVtvLlRdPWZ1bmN0aW9uKHQpe3JldHVybihlLmN0eHx8e30pW3RdfX0pKX1yZXR1cm4gZS5fX2llRHluPTEsZX0oKSxsPSJDb3JlVXRpbHMuZG9QZXJmIjtmdW5jdGlvbiBIKGUsdCxuLHIsaSl7aWYoZSl7dmFyIHM9ZTtpZihzW2Eua2xdJiYocz1zW2Eua2xdKCkpLHMpe3ZhciB1PXZvaWQgMCxIPXNbby5UXShsKTt0cnl7aWYodT1zLmNyZWF0ZSh0KCkscixpKSl7aWYoSCYmdVtvLnd1XSYmKHVbby53dV0oYy5QYXJlbnRDb250ZXh0S2V5LEgpLEhbby5UXSYmSFtvLnd1XSkpe3ZhciBkPUhbby5UXShjLkNoaWxkcmVuQ29udGV4dEtleSk7ZHx8KGQ9W10sSFtvLnd1XShjLkNoaWxkcmVuQ29udGV4dEtleSxkKSksZFtvLk1XXSh1KX1yZXR1cm4gc1tvLnd1XShsLHUpLG4odSl9fWNhdGNoKGUpe3UmJnVbby53dV0mJnVbby53dV0oImV4Y2VwdGlvbiIsZSl9ZmluYWxseXt1JiZzLmZpcmUodSksc1tvLnd1XShsLEgpfX19cmV0dXJuIG4oKX1mdW5jdGlvbiBkKCl7cmV0dXJuIHN9fSw0NzY5MDU6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0IjtuLmQodCx7QnQ6KCk9PlMsQ0Q6KCk9PmYsalY6KCk9PkMseHk6KCk9PnB9KTt2YXIgcj1uKDE3MzU5Nyksbz1uKDY2MjM3MiksaT1uKDgwMzE0NSksYT1uKDkyOTU0MSkscz1uKDM4Mjc3OCksYz1uKDMxNzE0MCksdT1uKDk0OTY3MCksbD0iVGVsZW1ldHJ5UGx1Z2luQ2hhaW4iLEg9MDtmdW5jdGlvbiBkKGUsdCxuLGMpe3ZhciB1PW51bGwsbD1bXTtudWxsIT09YyYmKHU9Yz9mdW5jdGlvbihlLHQsbil7Zm9yKDtlOyl7aWYoZVtyLlRPXSgpPT09bilyZXR1cm4gZTtlPWVbci5XMl0oKX1yZXR1cm4gQyhbbl0sdFtyLlRDXXx8e30sdCl9KGUsbixjKTplKTt2YXIgSD17X25leHQ6ZnVuY3Rpb24oKXt2YXIgZT11O2lmKHU9ZT9lW3IuVzJdKCk6bnVsbCwhZSl7dmFyIHQ9bDt0JiZ0W3IuUjVdPjAmJigoMCxhLnRPKSh0LChmdW5jdGlvbihlKXt0cnl7ZS5mdW5jW3IuX1NdKGUuc2VsZixlLmFyZ3MpfWNhdGNoKGUpeygwLG8ua1ApKG5bci5lWl0sMiw3MywiVW5leHBlY3RlZCBFeGNlcHRpb24gZHVyaW5nIG9uQ29tcGxldGUgLSAiKygwLGkuZVUpKGUpKX19KSksbD1bXSl9cmV0dXJuIGV9LGN0eDp7Y29yZTpmdW5jdGlvbigpe3JldHVybiBufSxkaWFnTG9nOmZ1bmN0aW9uKCl7cmV0dXJuKDAsby52SCkobix0KX0sZ2V0Q2ZnOmZ1bmN0aW9uKCl7cmV0dXJuIHR9LGdldEV4dENmZzpkLGdldENvbmZpZzpmdW5jdGlvbihlLG4scil7dm9pZCAwPT09ciYmKHI9ITEpO3ZhciBvLGk9ZChlLG51bGwpO2kmJiEoMCxhLmxlKShpW25dKT9vPWlbbl06dCYmISgwLGEubGUpKHRbbl0pJiYobz10W25dKTtyZXR1cm4oMCxhLmxlKShvKT9yOm99LGhhc05leHQ6ZnVuY3Rpb24oKXtyZXR1cm4hIXV9LGdldE5leHQ6ZnVuY3Rpb24oKXtyZXR1cm4gdX0sc2V0TmV4dDpmdW5jdGlvbihlKXt1PWV9LGl0ZXJhdGU6ZnVuY3Rpb24oZSl7dmFyIHQ7Zm9yKDt0PUguX25leHQoKTspe3ZhciBuPXRbci5UT10oKTtuJiZlKG4pfX0sb25Db21wbGV0ZTpmdW5jdGlvbihlLHQpe2Zvcih2YXIgbj1bXSxvPTI7bzxhcmd1bWVudHMubGVuZ3RoO28rKyluW28tMl09YXJndW1lbnRzW29dO2UmJmxbci5NV10oe2Z1bmM6ZSxzZWxmOigwLGEubzgpKHQpP0guY3R4OnQsYXJnczpufSl9fX07ZnVuY3Rpb24gZChlLG4scil7dmFyIG87aWYodm9pZCAwPT09biYmKG49e30pLHZvaWQgMD09PXImJihyPTApLHQpe3ZhciBpPXRbcy5aaF07aSYmZSYmKG89aVtlXSl9aWYobyl7aWYoKDAsYS5LbikobikmJjAhPT1yKXt2YXIgYz0oMCxhLm1tKSghMCxuLG8pO3QmJjI9PT1yJiYoMCxhLnJXKShuLChmdW5jdGlvbihlKXtpZigoMCxhLmxlKShjW2VdKSl7dmFyIG49dFtlXTsoMCxhLmxlKShuKXx8KGNbZV09bil9fSkpLG89Y319ZWxzZSBvPW47cmV0dXJuIG99cmV0dXJuIEh9ZnVuY3Rpb24gZihlLHQsbixvKXt2YXIgaT1kKGUsdCxuLG8pLGM9aS5jdHg7cmV0dXJuIGNbci51TF09ZnVuY3Rpb24oZSl7dmFyIHQ9aS5fbmV4dCgpO3JldHVybiB0JiZ0W3MuaExdKGUsYyksIXR9LGNbci56Vl09ZnVuY3Rpb24oZSxvKXtyZXR1cm4gdm9pZCAwPT09ZSYmKGU9bnVsbCksKDAsYS5rSikoZSkmJihlPUMoZSx0LG4sbykpLGYoZXx8Y1tyLlcyXSgpLHQsbixvKX0sY31mdW5jdGlvbiBTKGUsdCxuKXt2YXIgbz10W3IuVENdfHx7fSxpPWQoZSxvLHQsbikscz1pLmN0eDtyZXR1cm4gc1tyLnVMXT1mdW5jdGlvbihlKXt2YXIgdD1pLl9uZXh0KCk7cmV0dXJuIHQmJnQudW5sb2FkKHMsZSksIXR9LHNbci56Vl09ZnVuY3Rpb24oZSxuKXtyZXR1cm4gdm9pZCAwPT09ZSYmKGU9bnVsbCksKDAsYS5rSikoZSkmJihlPUMoZSxvLHQsbikpLFMoZXx8c1tyLlcyXSgpLHQsbil9LHN9ZnVuY3Rpb24gcChlLHQsbil7dmFyIG89dFtyLlRDXXx8e30saT1kKGUsbyx0LG4pLmN0eDtyZXR1cm4gaVtyLnVMXT1mdW5jdGlvbihlKXtyZXR1cm4gaS5pdGVyYXRlKChmdW5jdGlvbih0KXsoMCxhLm1mKSh0W3IuVHVdKSYmdFtyLlR1XShpLGUpfSkpfSxpW3IuelZdPWZ1bmN0aW9uKGUsbil7cmV0dXJuIHZvaWQgMD09PWUmJihlPW51bGwpLCgwLGEua0opKGUpJiYoZT1DKGUsbyx0LG4pKSxwKGV8fGlbci5XMl0oKSx0LG4pfSxpfWZ1bmN0aW9uIEMoZSx0LG4sZCl7dmFyIFM9bnVsbCxwPSFkO2lmKCgwLGEua0opKGUpJiZlW3IuUjVdPjApe3ZhciB2PW51bGw7KDAsYS50TykoZSwoZnVuY3Rpb24oZSl7aWYocHx8ZCE9PWV8fChwPSEwKSxwJiZlJiYoMCxhLm1mKShlW3MuaExdKSl7dmFyIEM9ZnVuY3Rpb24oZSx0LG4pe3ZhciBkLFM9bnVsbCxwPSgwLGEubWYpKGVbcy5oTF0pLEM9KDAsYS5tZikoZVtyLkpkXSk7ZD1lP2Vbci5wWl0rIi0iK2Vbcy55aV0rIi0iK0grKzoiVW5rbm93bi0wLSIrSCsrO3ZhciB2PXtnZXRQbHVnaW46ZnVuY3Rpb24oKXtyZXR1cm4gZX0sZ2V0TmV4dDpmdW5jdGlvbigpe3JldHVybiBTfSxwcm9jZXNzVGVsZW1ldHJ5OkksdW5sb2FkOkEsdXBkYXRlOmcsX2lkOmQsX3NldE5leHQ6ZnVuY3Rpb24oZSl7Uz1lfX07ZnVuY3Rpb24gaCgpe3ZhciByO3JldHVybiBlJiYoMCxhLm1mKShlLl9nZXRUZWxDdHgpJiYocj1lLl9nZXRUZWxDdHgoKSkscnx8KHI9Zih2LHQsbikpLHJ9ZnVuY3Rpb24gbSh0LG4sYSx1LEgpe3ZhciBmPSExLHA9ZT9lW3IucFpdOmwsQz10Ll9oYXNSdW47cmV0dXJuIEN8fChDPXQuX2hhc1J1bj17fSksdC5zZXROZXh0KFMpLGUmJigwLGMuTG0pKHRbcy5vVl0oKSwoZnVuY3Rpb24oKXtyZXR1cm4gcCsiOiIrYX0pLChmdW5jdGlvbigpe0NbZF09ITA7dHJ5e3ZhciBlPVM/Uy5faWQ6cy5xUztlJiYoQ1tlXT0hMSksZj1uKHQpfWNhdGNoKGUpe3ZhciBjPSFTfHxDW1MuX2lkXTtjJiYoZj0hMCksUyYmY3x8KDAsby5rUCkodFtyLm1jXSgpLDEsNzMsIlBsdWdpbiBbIitwKyJdIGZhaWxlZCBkdXJpbmcgIithKyIgLSAiKygwLGkuZVUpKGUpKyIsIHJ1biBmbGFnczogIisoMCxpLmVVKShDKSl9fSksdSxIKSxmfWZ1bmN0aW9uIEkodCxuKXtmdW5jdGlvbiBvKG4pe2lmKCFlfHwhcClyZXR1cm4hMTt2YXIgbz0oMCx1Lk9ZKShlKTtyZXR1cm4hb1tyLmZpXSYmIW9bcy5tRV0mJihDJiZlW3IuSmRdKFMpLGVbcy5oTF0odCxuKSwhMCl9bShuPW58fGgoKSxvLCJwcm9jZXNzVGVsZW1ldHJ5IiwoZnVuY3Rpb24oKXtyZXR1cm57aXRlbTp0fX0pLCF0LnN5bmMpfHxuW3IudUxdKHQpfWZ1bmN0aW9uIEEodCxuKXtmdW5jdGlvbiBvKCl7dmFyIG89ITE7aWYoZSl7dmFyIGk9KDAsdS5PWSkoZSksYT1lW3Mub1ZdfHxpW3Mub1ZdOyFlfHxhJiZhIT09dC5jb3JlKCl8fGlbci5maV18fChpW3Mub1ZdPW51bGwsaVtyLmZpXT0hMCxpW3IueWxdPSExLGVbci5maV0mJiEwPT09ZVtyLmZpXSh0LG4pJiYobz0hMCkpfXJldHVybiBvfW0odCxvLCJ1bmxvYWQiLChmdW5jdGlvbigpe30pLG5bci5kXSl8fHRbci51TF0obil9ZnVuY3Rpb24gZyh0LG4pe2Z1bmN0aW9uIG8oKXt2YXIgbz0hMTtpZihlKXt2YXIgaT0oMCx1Lk9ZKShlKSxhPWVbcy5vVl18fGlbcy5vVl07IWV8fGEmJmEhPT10LmNvcmUoKXx8aVtyLmZpXXx8ZVtyLlR1XSYmITA9PT1lW3IuVHVdKHQsbikmJihvPSEwKX1yZXR1cm4gb31tKHQsbywidXBkYXRlIiwoZnVuY3Rpb24oKXt9KSwhMSl8fHRbci51TF0obil9cmV0dXJuKDAsYS5GTCkodil9KGUsdCxuKTtTfHwoUz1DKSx2JiZ2Ll9zZXROZXh0KEMpLHY9Q319KSl9cmV0dXJuIGQmJiFTP0MoW2RdLHQsbik6U319LDc1NTk5MjooZSx0LG4pPT57InVzZSBzdHJpY3QiO24uZCh0LHtDTjooKT0+QyxGNjooKT0+dixfbDooKT0+cCxhejooKT0+UyxwWjooKT0+aH0pO3ZhciByPW4oMTczNTk3KSxvPW4oODAzMTQ1KSxpPW4oOTI5NTQxKSxhPW4oMzgyNzc4KSxzPTQyOTQ5NjcyOTYsYz00Mjk0OTY3Mjk1LHU9ITEsbD0xMjM0NTY3ODksSD05ODc2NTQzMjE7ZnVuY3Rpb24gZChlKXtlPDAmJihlPj4+PTApLGw9MTIzNDU2Nzg5K2UmYyxIPTk4NzY1NDMyMS1lJmMsdT0hMH1mdW5jdGlvbiBmKCl7dHJ5e3ZhciBlPTIxNDc0ODM2NDcmKDAsaS5tNikoKTtkKChNYXRoLnJhbmRvbSgpKnNeZSkrZSl9Y2F0Y2goZSl7fX1mdW5jdGlvbiBTKGUpe3JldHVybiBlPjA/TWF0aC5mbG9vcihwKCkvYyooZSsxKSk+Pj4wOjB9ZnVuY3Rpb24gcChlKXt2YXIgdD0wLG49KDAsby5NWCkoKXx8KDAsby5neikoKTtyZXR1cm4gbiYmbi5nZXRSYW5kb21WYWx1ZXMmJih0PW4uZ2V0UmFuZG9tVmFsdWVzKG5ldyBVaW50MzJBcnJheSgxKSlbMF0mYyksMD09PXQmJigwLG8udzEpKCkmJih1fHxmKCksdD12KCkmYyksMD09PXQmJih0PU1hdGguZmxvb3IocypNYXRoLnJhbmRvbSgpfDApKSxlfHwodD4+Pj0wKSx0fWZ1bmN0aW9uIEMoZSl7ZT9kKGUpOmYoKX1mdW5jdGlvbiB2KGUpe3ZhciB0PSgoSD0zNjk2OSooNjU1MzUmSCkrKEg+PjE2KSZjKTw8MTYpKyg2NTUzNSYobD0xOGUzKig2NTUzNSZsKSsobD4+MTYpJmMpKT4+PjAmY3wwO3JldHVybiBlfHwodD4+Pj0wKSx0fWZ1bmN0aW9uIGgoZSl7dm9pZCAwPT09ZSYmKGU9MjIpO2Zvcih2YXIgdD1wKCk+Pj4wLG49MCxvPWEucVM7b1tyLlI1XTxlOyluKyssbys9IkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky8iLmNoYXJBdCg2MyZ0KSx0Pj4+PTYsNT09PW4mJih0PShwKCk8PDImNDI5NDk2NzI5NXwzJnQpPj4+MCxuPTApO3JldHVybiBvfX0sOTQ5NjcwOihlLHQsbik9PnsidXNlIHN0cmljdCI7bi5kKHQse0FBOigpPT5ILE9ZOigpPT51LFluOigpPT5kLGJQOigpPT5sfSk7dmFyIHI9bigxNzM1OTcpLG89bigyMzU2MiksaT1uKDkyOTU0MSksYT1uKDM4Mjc3OCkscz1uKDE5MzA4MiksYz0oMCxvLkspKCJwbHVnaW4iKTtmdW5jdGlvbiB1KGUpe3JldHVybiBjLmdldChlLCJzdGF0ZSIse30sITApfWZ1bmN0aW9uIGwoZSx0KXtmb3IodmFyIG4sbz1bXSxzPW51bGwsYz1lW3IuVzJdKCk7Yzspe3ZhciBsPWNbci5UT10oKTtpZihsKXtzJiYoMCxpLm1mKShzW3IuSmRdKSYmKDAsaS5tZikobFthLmhMXSkmJnNbci5KZF0obCk7KCgwLGkubWYpKGxbci55bF0pP2xbci55bF0oKToobj11KGwpKVtyLnlsXSl8fG9bci5NV10obCkscz1sLGM9Y1tyLlcyXSgpfX0oMCxpLnRPKShvLChmdW5jdGlvbihvKXt2YXIgaT1lW2Eub1ZdKCk7b1tyLlZMXShlLmdldENmZygpLGksdCxlW3IuVzJdKCkpLG49dShvKSxvW2Eub1ZdfHxuW2Eub1ZdfHwoblthLm9WXT1pKSxuW3IueWxdPSEwLGRlbGV0ZSBuW3IuZmldfSkpfWZ1bmN0aW9uIEgoZSl7cmV0dXJuIGUuc29ydCgoZnVuY3Rpb24oZSx0KXt2YXIgbj0wO2lmKHQpe3ZhciByPSgwLGkubWYpKHRbYS5oTF0pOygwLGkubWYpKGVbYS5oTF0pP249cj9lW2EueWldLXRbYS55aV06MTpyJiYobj0tMSl9ZWxzZSBuPWU/MTotMTtyZXR1cm4gbn0pKX1mdW5jdGlvbiBkKGUpe3ZhciB0PXt9O3JldHVybntnZXROYW1lOmZ1bmN0aW9uKCl7cmV0dXJuIHRbci5JXX0sc2V0TmFtZTpmdW5jdGlvbihuKXtlJiZlLnNldE5hbWUobiksdFtyLkldPW59LGdldFRyYWNlSWQ6ZnVuY3Rpb24oKXtyZXR1cm4gdFtyLm5ZXX0sc2V0VHJhY2VJZDpmdW5jdGlvbihuKXtlJiZlLnNldFRyYWNlSWQobiksKDAscy5qTikobikmJih0W3IublldPW4pfSxnZXRTcGFuSWQ6ZnVuY3Rpb24oKXtyZXR1cm4gdFtyLl9kXX0sc2V0U3BhbklkOmZ1bmN0aW9uKG4pe2UmJmUuc2V0U3BhbklkKG4pLCgwLHMuTGMpKG4pJiYodFtyLl9kXT1uKX0sZ2V0VHJhY2VGbGFnczpmdW5jdGlvbigpe3JldHVybiB0W3IuVDBdfSxzZXRUcmFjZUZsYWdzOmZ1bmN0aW9uKG4pe2UmJmUuc2V0VHJhY2VGbGFncyhuKSx0W3IuVDBdPW59fX19LDg1MTkzMDooZSx0LG4pPT57InVzZSBzdHJpY3QiO24uZCh0LHtZOigpPT5zfSk7dmFyIHI9bigxNzM1OTcpLG89big2NjIzNzIpLGk9big4MDMxNDUpLGE9big5Mjk1NDEpO2Z1bmN0aW9uIHMoKXt2YXIgZT1bXTtyZXR1cm57YWRkOmZ1bmN0aW9uKHQpe3QmJmVbci5NV10odCl9LHJ1bjpmdW5jdGlvbih0LG4peygwLGEudE8pKGUsKGZ1bmN0aW9uKGUpe3RyeXtlKHQsbil9Y2F0Y2goZSl7KDAsby5rUCkodFtyLm1jXSgpLDIsNzMsIlVuZXhwZWN0ZWQgZXJyb3IgY2FsbGluZyB1bmxvYWQgaGFuZGxlciAtICIrKDAsaS5lVSkoZSkpfX0pKSxlPVtdfX19fSwxOTMwODI6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0IjtuLmQodCx7TGM6KCk9PmMsak46KCk9PnN9KTt2YXIgcj1uKDE3MzU5Nyksbz0iMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLGk9IjAwMDAwMDAwMDAwMDAwMDAiO2Z1bmN0aW9uIGEoZSx0LG4pe3JldHVybiEoIWV8fGVbci5SNV0hPT10fHxlPT09bikmJiEhZS5tYXRjaCgvXltcZGEtZl0qJC8pfWZ1bmN0aW9uIHMoZSl7cmV0dXJuIGEoZSwzMixvKX1mdW5jdGlvbiBjKGUpe3JldHVybiBhKGUsMTYsaSl9fSwxNzM1OTc6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0IjtuLmQodCx7JGg6KCk9PkYsRjM6KCk9PncsRmM6KCk9Pm0sRnI6KCk9PkosR2M6KCk9PlUsSTooKT0+byxKZDooKT0+RSxKbjooKT0+TCxLbTooKT0+ZWUsS246KCk9PlksTFM6KCk9PmgsTGs6KCk9PlQsTVc6KCk9PnMsUDY6KCk9PkcsUEw6KCk9PlgsUjU6KCk9PmQsU0Q6KCk9PnAsVDooKT0+XyxUMDooKT0+cmUsVDE6KCk9PlosVEM6KCk9PnUsVE86KCk9PkksVHU6KCk9PmIsVkw6KCk9PnIsVzI6KCk9PlAsWlY6KCk9PlcsWl86KCk9PmYsX1M6KCk9PnosX2Q6KCk9Pm5lLGNiOigpPT5SLGQ6KCk9PkssZEU6KCk9PlEsZVo6KCk9PkgsZmk6KCk9Pk4sZzooKT0+QyxnVTooKT0+eSxpNzooKT0+aixpQzooKT0+ZyxqazooKT0+cSxrTDooKT0+QSxtYzooKT0+ayxuNzooKT0+dixuWTooKT0+dGUsb3U6KCk9PngscCQ6KCk9PmwscFo6KCk9PmEscVY6KCk9Pk0sdGI6KCk9PmksdUw6KCk9PlMsdzY6KCk9PkIsd3U6KCk9PiQseHY6KCk9PlYseWw6KCk9PmMselY6KCk9Pk8semM6KCk9PkR9KTt2YXIgcj0iaW5pdGlhbGl6ZSIsbz0ibmFtZSIsaT0iZ2V0Tm90aWZ5TWdyIixhPSJpZGVudGlmaWVyIixzPSJwdXNoIixjPSJpc0luaXRpYWxpemVkIix1PSJjb25maWciLGw9Imluc3RydW1lbnRhdGlvbktleSIsSD0ibG9nZ2VyIixkPSJsZW5ndGgiLGY9InRpbWUiLFM9InByb2Nlc3NOZXh0IixwPSJnZXRQcm9jZXNzVGVsQ29udGV4dCIsQz0iYWRkTm90aWZpY2F0aW9uTGlzdGVuZXIiLHY9InJlbW92ZU5vdGlmaWNhdGlvbkxpc3RlbmVyIixoPSJzdG9wUG9sbGluZ0ludGVybmFsTG9ncyIsbT0ib25Db21wbGV0ZSIsST0iZ2V0UGx1Z2luIixBPSJmbHVzaCIsZz0iX2V4dGVuc2lvbnMiLFI9InNwbGljZSIsTj0idGVhcmRvd24iLFU9Im1lc3NhZ2VJZCIseT0ibWVzc2FnZSIsSz0iaXNBc3luYyIsdz0iX2RvVGVhcmRvd24iLGI9InVwZGF0ZSIsUD0iZ2V0TmV4dCIsaz0iZGlhZ0xvZyIsRT0ic2V0TmV4dFBsdWdpbiIsTz0iY3JlYXRlTmV3IixUPSJjb29raWVDZmciLHg9ImluZGV4T2YiLEQ9InN1YnN0cmluZyIsTT0idXNlckFnZW50IixCPSJzcGxpdCIsRj0ic2V0RW5hYmxlZCIsTD0ic3Vic3RyIixWPSJub2RlVHlwZSIsVz0iYXBwbHkiLGo9InJlcGxhY2UiLEo9ImVuYWJsZURlYnVnRXhjZXB0aW9ucyIscT0ibG9nSW50ZXJuYWxNZXNzYWdlIixaPSJ0b0xvd2VyQ2FzZSIsej0iY2FsbCIsRz0idHlwZSIsWT0iaGFuZGxlciIsUT0ibGlzdGVuZXJzIixYPSJpc0NoaWxkRXZ0IixfPSJnZXRDdHgiLCQ9InNldEN0eCIsZWU9ImNvbXBsZXRlIix0ZT0idHJhY2VJZCIsbmU9InNwYW5JZCIscmU9InRyYWNlRmxhZ3MifSwyMjE5MDg6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0IjtuLmQodCx7Q1k6KCk9PmYsUHc6KCk9PmMsUko6KCk9PmQsVjQ6KCk9PnUsYk86KCk9PnMsY2I6KCk9PnIsZks6KCk9Pm8saEI6KCk9PmEsakE6KCk9Pmkscmw6KCk9PmwseXU6KCk9Pkh9KTt2YXIgcj0iZnVuY3Rpb24iLG89Im9iamVjdCIsaT0idW5kZWZpbmVkIixhPSJwcm90b3R5cGUiLHM9Imhhc093blByb3BlcnR5IixjPU9iamVjdCx1PWNbYV0sbD1jLmFzc2lnbixIPWMuY3JlYXRlLGQ9Yy5kZWZpbmVQcm9wZXJ0eSxmPXVbc119LDgyNjQ1NDooZSx0LG4pPT57InVzZSBzdHJpY3QiO24uZCh0LHtSZDooKT0+aSxaVTooKT0+YSxwdTooKT0+c30pO3ZhciByPW4oMjIxOTA4KSxvPW51bGw7ZnVuY3Rpb24gaShlKXt2b2lkIDA9PT1lJiYoZT0hMCk7dmFyIHQ9ITE9PT1lP251bGw6bztyZXR1cm4gdHx8KHR5cGVvZiBnbG9iYWxUaGlzIT09ci5qQSYmKHQ9Z2xvYmFsVGhpcyksdHx8dHlwZW9mIHNlbGY9PT1yLmpBfHwodD1zZWxmKSx0fHx0eXBlb2Ygd2luZG93PT09ci5qQXx8KHQ9d2luZG93KSx0fHx0eXBlb2Ygbi5nPT09ci5qQXx8KHQ9bi5nKSxvPXQpLHR9ZnVuY3Rpb24gYShlKXt0aHJvdyBuZXcgVHlwZUVycm9yKGUpfWZ1bmN0aW9uIHMoZSl7dmFyIHQ9ci55dTtpZih0KXJldHVybiB0KGUpO2lmKG51bGw9PWUpcmV0dXJue307dmFyIG49dHlwZW9mIGU7ZnVuY3Rpb24gbygpe31yZXR1cm4gbiE9PXIuZksmJm4hPT1yLmNiJiZhKCJPYmplY3QgcHJvdG90eXBlIG1heSBvbmx5IGJlIGFuIE9iamVjdDoiK2UpLG9bci5oQl09ZSxuZXcgb319LDM0NTM2MjooZSx0LG4pPT57InVzZSBzdHJpY3QiO24uZCh0LHskaDooKT0+YyxuZTooKT0+cyx1YzooKT0+aX0pO3ZhciByPW4oMjIxOTA4KSxvPW4oODI2NDU0KSxpPSgoKDAsby5SZCkoKXx8e30pLlN5bWJvbCwoKDAsby5SZCkoKXx8e30pLlJlZmxlY3Qsci5ybHx8ZnVuY3Rpb24oZSl7Zm9yKHZhciB0LG49MSxvPWFyZ3VtZW50cy5sZW5ndGg7bjxvO24rKylmb3IodmFyIGkgaW4gdD1hcmd1bWVudHNbbl0pci5WNFtyLmJPXS5jYWxsKHQsaSkmJihlW2ldPXRbaV0pO3JldHVybiBlfSksYT1mdW5jdGlvbihlLHQpe3JldHVybiBhPXIuUHcuc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24oZSx0KXtlLl9fcHJvdG9fXz10fXx8ZnVuY3Rpb24oZSx0KXtmb3IodmFyIG4gaW4gdCl0W3IuYk9dKG4pJiYoZVtuXT10W25dKX0sYShlLHQpfTtmdW5jdGlvbiBzKGUsdCl7ZnVuY3Rpb24gbigpe3RoaXMuY29uc3RydWN0b3I9ZX10eXBlb2YgdCE9PXIuY2ImJm51bGwhPT10JiYoMCxvLlpVKSgiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSAiK1N0cmluZyh0KSsiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGwiKSxhKGUsdCksZVtyLmhCXT1udWxsPT09dD8oMCxvLnB1KSh0KToobltyLmhCXT10W3IuaEJdLG5ldyBuKX1mdW5jdGlvbiBjKGUsdCl7Zm9yKHZhciBuPTAscj10Lmxlbmd0aCxvPWUubGVuZ3RoO248cjtuKyssbysrKWVbb109dFtuXTtyZXR1cm4gZX19LDkyMzgwNjooZSx0LG4pPT57InVzZSBzdHJpY3QiO3ZhciByO24uZCh0LHtaOigpPT5ifSk7dmFyIG89InVuZGVmaW5lZCIsaT0iY29uc3RydWN0b3IiLGE9InByb3RvdHlwZSIscz0iZnVuY3Rpb24iLGM9Il9keW5DbGFzcyIsdT0iX3Vua25vd25fIixsPSJfZHluX19wcm90b19fIixIPU9iamVjdCxkPUguZ2V0UHJvdG90eXBlT2YsZj1ILmdldE93blByb3BlcnR5TmFtZXM7dmFyIFMscD0odHlwZW9mIGdsb2JhbFRoaXMhPT1vJiYoUz1nbG9iYWxUaGlzKSxTfHx0eXBlb2Ygc2VsZj09PW98fChTPXNlbGYpLFN8fHR5cGVvZiB3aW5kb3c9PT1vfHwoUz13aW5kb3cpLFN8fHR5cGVvZiBuLmc9PT1vfHwoUz1uLmcpLFN8fHt9KSxDPXAuX19keW5Qcm90byRHYmx8fChwLl9fZHluUHJvdG8kR2JsPXtvOihyPXt9LHIuc2V0SW5zdEZ1bmNzPSEwLHIudXNlQmFzZUluc3Q9ITAsciksbjoxZTN9KTtmdW5jdGlvbiB2KGUsdCl7cmV0dXJuIGUmJkgucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSx0KX1mdW5jdGlvbiBoKGUpe3JldHVybiBlJiYoZT09PUgucHJvdG90eXBlfHxlPT09QXJyYXkucHJvdG90eXBlKX1mdW5jdGlvbiBtKGUpe3JldHVybiBoKGUpfHxlPT09RnVuY3Rpb24ucHJvdG90eXBlfWZ1bmN0aW9uIEkoZSl7dmFyIHQ7aWYoZSl7aWYoZClyZXR1cm4gZChlKTt2YXIgbj1lLl9fcHJvdG9fX3x8ZS5wcm90b3R5cGV8fChlLmNvbnN0cnVjdG9yP2UuY29uc3RydWN0b3IucHJvdG90eXBlOm51bGwpO3Q9ZS5fZHluX19wcm90b19ffHxuLHYoZSxsKXx8KGRlbGV0ZSBlLl9keW5JbnN0UHJvdG8sdD1lLl9keW5fX3Byb3RvX189ZS5fZHluSW5zdFByb3RvfHxlLl9keW5fX3Byb3RvX18sZS5fZHluSW5zdFByb3RvPW4pfXJldHVybiB0fWZ1bmN0aW9uIEEoZSx0KXt2YXIgbj1bXTtpZihmKW49ZihlKTtlbHNlIGZvcih2YXIgciBpbiBlKSJzdHJpbmciPT10eXBlb2YgciYmdihlLHIpJiZuLnB1c2gocik7aWYobiYmbi5sZW5ndGg+MClmb3IodmFyIG89MDtvPG4ubGVuZ3RoO28rKyl0KG5bb10pfWZ1bmN0aW9uIGcoZSx0LG4pe3JldHVybiB0IT09aSYmdHlwZW9mIGVbdF09PT1zJiYobnx8dihlLHQpKX1mdW5jdGlvbiBSKGUpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkR5bmFtaWNQcm90bzogIitlKX1mdW5jdGlvbiBOKGUsdCl7Zm9yKHZhciBuPWUubGVuZ3RoLTE7bj49MDtuLS0paWYoZVtuXT09PXQpcmV0dXJuITA7cmV0dXJuITF9ZnVuY3Rpb24gVShlLHQsbixyKXt2YXIgbz1udWxsO2lmKGUmJnYobixjKSl7dmFyIGk9ZS5fZHluSW5zdEZ1bmNzfHx7fTtpZigobz0oaVtuLl9keW5DbGFzc118fHt9KVt0XSl8fFIoIk1pc3NpbmcgWyIrdCsiXSAiK3MpLCFvLl9keW5JbnN0Q2hrJiYhMSE9PWkuX2R5bkluc3RDaGspe2Zvcih2YXIgYT0hdihlLHQpLHU9SShlKSxsPVtdO2EmJnUmJiFtKHUpJiYhTihsLHUpOyl7dmFyIEg9dVt0XTtpZihIKXthPUg9PT1yO2JyZWFrfWwucHVzaCh1KSx1PUkodSl9dHJ5e2EmJihlW3RdPW8pLG8uX2R5bkluc3RDaGs9MX1jYXRjaChlKXtpLl9keW5JbnN0Q2hrPSExfX19cmV0dXJuIG99ZnVuY3Rpb24geShlLHQsbil7dmFyIHI9dFtlXTtyZXR1cm4gcj09PW4mJihyPUkodClbZV0pLHR5cGVvZiByIT09cyYmUigiWyIrZSsiXSBpcyBub3QgYSAiK3MpLHJ9ZnVuY3Rpb24gSyhlLHQsbixyLG8pe2lmKCFoKGUpKXt2YXIgaT1uLl9keW5JbnN0RnVuY3M9bi5fZHluSW5zdEZ1bmNzfHx7fSxhPWlbdF09aVt0XXx8e307ITEhPT1pLl9keW5JbnN0Q2hrJiYoaS5fZHluSW5zdENoaz0hIW8pLEEobiwoZnVuY3Rpb24odCl7ZyhuLHQsITEpJiZuW3RdIT09clt0XSYmKGFbdF09blt0XSxkZWxldGUgblt0XSwoIXYoZSx0KXx8ZVt0XSYmIWVbdF0uX2lzRHluUHJveHkpJiYoZVt0XT1mdW5jdGlvbihlLHQpe3ZhciBuPWZ1bmN0aW9uKCl7cmV0dXJuKFUodGhpcyx0LGUsbil8fHkodCxlLG4pKS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9O3JldHVybiBuLl9pc0R5blByb3h5PTEsbn0oZSx0KSkpfSkpfX1mdW5jdGlvbiB3KGUsdCl7cmV0dXJuIHYoZSxhKT9lLm5hbWV8fHR8fHU6KChlfHx7fSkuY29uc3RydWN0b3J8fHt9KS5uYW1lfHx0fHx1fWZ1bmN0aW9uIGIoZSx0LG4scil7dihlLGEpfHxSKCJ0aGVDbGFzcyBpcyBhbiBpbnZhbGlkIGNsYXNzIGRlZmluaXRpb24uIik7dmFyIG89ZS5wcm90b3R5cGU7KGZ1bmN0aW9uKGUsdCl7aWYoZCl7Zm9yKHZhciBuPVtdLHI9SSh0KTtyJiYhbShyKSYmIU4obixyKTspe2lmKHI9PT1lKXJldHVybiEwO24ucHVzaChyKSxyPUkocil9cmV0dXJuITF9cmV0dXJuITB9KShvLHQpfHxSKCJbIit3KGUpKyJdIG5vdCBpbiBoaWVyYXJjaHkgb2YgWyIrdyh0KSsiXSIpO3ZhciBpPW51bGw7dihvLGMpP2k9by5fZHluQ2xhc3M6KGk9Il9keW5DbHMkIit3KGUsIl8iKSsiJCIrQy5uLEMubisrLG8uX2R5bkNsYXNzPWkpO3ZhciBzPWIuX2RmT3B0cyx1PSEhcy51c2VCYXNlSW5zdDt1JiZyJiZ2b2lkIDAhPT1yLnVzZUJhc2VJbnN0JiYodT0hIXIudXNlQmFzZUluc3QpO3ZhciBsPWZ1bmN0aW9uKGUpe3ZhciB0PXt9O3JldHVybiBBKGUsKGZ1bmN0aW9uKG4peyF0W25dJiZnKGUsbiwhMSkmJih0W25dPWVbbl0pfSkpLHR9KHQpLEg9ZnVuY3Rpb24oZSx0LG4scil7ZnVuY3Rpb24gbyhlLHQsbil7dmFyIG89dFtuXTtpZihvLl9pc0R5blByb3h5JiZyKXt2YXIgaT1lLl9keW5JbnN0RnVuY3N8fHt9OyExIT09aS5fZHluSW5zdENoayYmKG89KGlbdC5fZHluQ2xhc3NdfHx7fSlbbl18fG8pfXJldHVybiBmdW5jdGlvbigpe3JldHVybiBvLmFwcGx5KGUsYXJndW1lbnRzKX19dmFyIGk9e307QShuLChmdW5jdGlvbihlKXtpW2VdPW8odCxuLGUpfSkpO2Zvcih2YXIgYT1JKGUpLHM9W107YSYmIW0oYSkmJiFOKHMsYSk7KUEoYSwoZnVuY3Rpb24oZSl7IWlbZV0mJmcoYSxlLCFkKSYmKGlbZV09byh0LGEsZSkpfSkpLHMucHVzaChhKSxhPUkoYSk7cmV0dXJuIGl9KG8sdCxsLHUpO24odCxIKTt2YXIgZj0hIWQmJiEhcy5zZXRJbnN0RnVuY3M7ZiYmciYmKGY9ISFyLnNldEluc3RGdW5jcyksSyhvLGksdCxsLCExIT09Zil9Yi5fZGZPcHRzPUMub30sMzAyNjI0OmZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO3ZhciBuLHIsbyxpLGE9dGhpcyYmdGhpcy5fX2F3YWl0ZXJ8fGZ1bmN0aW9uKGUsdCxuLHIpe3JldHVybiBuZXcobnx8KG49UHJvbWlzZSkpKChmdW5jdGlvbihvLGkpe2Z1bmN0aW9uIGEoZSl7dHJ5e2Moci5uZXh0KGUpKX1jYXRjaChlKXtpKGUpfX1mdW5jdGlvbiBzKGUpe3RyeXtjKHIudGhyb3coZSkpfWNhdGNoKGUpe2koZSl9fWZ1bmN0aW9uIGMoZSl7dmFyIHQ7ZS5kb25lP28oZS52YWx1ZSk6KHQ9ZS52YWx1ZSx0IGluc3RhbmNlb2Ygbj90Om5ldyBuKChmdW5jdGlvbihlKXtlKHQpfSkpKS50aGVuKGEscyl9Yygocj1yLmFwcGx5KGUsdHx8W10pKS5uZXh0KCkpfSkpfSxzPXRoaXMmJnRoaXMuX19nZW5lcmF0b3J8fGZ1bmN0aW9uKGUsdCl7dmFyIG4scixvLGksYT17bGFiZWw6MCxzZW50OmZ1bmN0aW9uKCl7aWYoMSZvWzBdKXRocm93IG9bMV07cmV0dXJuIG9bMV19LHRyeXM6W10sb3BzOltdfTtyZXR1cm4gaT17bmV4dDpzKDApLHRocm93OnMoMSkscmV0dXJuOnMoMil9LCJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJihpW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pLGk7ZnVuY3Rpb24gcyhpKXtyZXR1cm4gZnVuY3Rpb24ocyl7cmV0dXJuIGZ1bmN0aW9uKGkpe2lmKG4pdGhyb3cgbmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLiIpO2Zvcig7YTspdHJ5e2lmKG49MSxyJiYobz0yJmlbMF0/ci5yZXR1cm46aVswXT9yLnRocm93fHwoKG89ci5yZXR1cm4pJiZvLmNhbGwociksMCk6ci5uZXh0KSYmIShvPW8uY2FsbChyLGlbMV0pKS5kb25lKXJldHVybiBvO3N3aXRjaChyPTAsbyYmKGk9WzImaVswXSxvLnZhbHVlXSksaVswXSl7Y2FzZSAwOmNhc2UgMTpvPWk7YnJlYWs7Y2FzZSA0OnJldHVybiBhLmxhYmVsKysse3ZhbHVlOmlbMV0sZG9uZTohMX07Y2FzZSA1OmEubGFiZWwrKyxyPWlbMV0saT1bMF07Y29udGludWU7Y2FzZSA3Omk9YS5vcHMucG9wKCksYS50cnlzLnBvcCgpO2NvbnRpbnVlO2RlZmF1bHQ6aWYoIShvPWEudHJ5cywobz1vLmxlbmd0aD4wJiZvW28ubGVuZ3RoLTFdKXx8NiE9PWlbMF0mJjIhPT1pWzBdKSl7YT0wO2NvbnRpbnVlfWlmKDM9PT1pWzBdJiYoIW98fGlbMV0+b1swXSYmaVsxXTxvWzNdKSl7YS5sYWJlbD1pWzFdO2JyZWFrfWlmKDY9PT1pWzBdJiZhLmxhYmVsPG9bMV0pe2EubGFiZWw9b1sxXSxvPWk7YnJlYWt9aWYobyYmYS5sYWJlbDxvWzJdKXthLmxhYmVsPW9bMl0sYS5vcHMucHVzaChpKTticmVha31vWzJdJiZhLm9wcy5wb3AoKSxhLnRyeXMucG9wKCk7Y29udGludWV9aT10LmNhbGwoZSxhKX1jYXRjaChlKXtpPVs2LGVdLHI9MH1maW5hbGx5e249bz0wfWlmKDUmaVswXSl0aHJvdyBpWzFdO3JldHVybnt2YWx1ZTppWzBdP2lbMV06dm9pZCAwLGRvbmU6ITB9fShbaSxzXSl9fX07ZnVuY3Rpb24gYyhlKXt0aHJvdyBuZXcgRXJyb3IoIlJlc29sdmUgbXVzdCBub3QgYmUgY2FsbGVkIil9ZnVuY3Rpb24gdShlKXt0aHJvdyBuZXcgRXJyb3IoIlJlamVjdCBtdXN0IG5vdCBiZSBjYWxsZWQiKX1PYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC50aHJvd0lmVmVyc2lvbklzTm90U3VwcG9ydGVkPXQuSXNWZXJzb25TdXBwb3J0ZWRCeUhvc3Q9dC5pc1BJRUhvc3RQcmVzZW50PXQuSG9zdEJyaWRnZT10Lk5vb3BQb3N0UHJvY2Vzc2luZ0ZhY3Rvcnk9dC5VaW50OEFycmF5UG9zdFByb2Nlc3NpbmdGYWN0b3J5PXQuUG9pbnRlclBvc3RQcm9jZXNzaW5nRmFjdG9yeT10LkRhdGVQb3N0UHJvY2Vzc2luZ0ZhY3Rvcnk9dm9pZCAwLHQuRGF0ZVBvc3RQcm9jZXNzaW5nRmFjdG9yeT1mdW5jdGlvbigpe3JldHVybiBufHwobj17Y29udmVydDpmdW5jdGlvbihlKXtyZXR1cm4gbmV3IERhdGUoZSl9fSksbn0sdC5Qb2ludGVyUG9zdFByb2Nlc3NpbmdGYWN0b3J5PWZ1bmN0aW9uKCl7cmV0dXJuIHJ8fChyPXtjb252ZXJ0OmZ1bmN0aW9uKGUpe3JldHVybiBuZXcgVWludDMyQXJyYXkoW2VbMF0sZVsxXV0pfX0pLHJ9LHQuVWludDhBcnJheVBvc3RQcm9jZXNzaW5nRmFjdG9yeT1mdW5jdGlvbigpe3JldHVybiBvfHwobz17Y29udmVydDpmdW5jdGlvbihlKXtyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoZSl9fSksb30sdC5Ob29wUG9zdFByb2Nlc3NpbmdGYWN0b3J5PWZ1bmN0aW9uKCl7cmV0dXJuIGl8fChpPXt9KSxpfTt2YXIgbCxIPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSgpe3RoaXMubmV4dEhhbmRsZXJJZD0xLHRoaXMucmVnaXN0ZXJlZEhhbmRsZXJzPW5ldyBNYXB9cmV0dXJuIGUucHJvdG90eXBlLnJlZ2lzdGVySGFuZGxlcj1mdW5jdGlvbihlKXt2YXIgdD10aGlzLG49dGhpcy5uZXh0SGFuZGxlcklkO3JldHVybiB0aGlzLm5leHRIYW5kbGVySWQ9dGhpcy5uZXh0SGFuZGxlcklkKzEsdGhpcy5yZWdpc3RlcmVkSGFuZGxlcnMuc2V0KG4sZSksZnVuY3Rpb24oKXt0LnVucmVnaXN0ZXJIYW5kbGVyKG4pfX0sZS5wcm90b3R5cGUuUmFpc2VFdmVudD1mdW5jdGlvbihlKXt0aGlzLnJlZ2lzdGVyZWRIYW5kbGVycy5mb3JFYWNoKChmdW5jdGlvbih0KXt0KGUpfSkpfSxlLnByb3RvdHlwZS5IYXNIYW5kbGVycz1mdW5jdGlvbigpe3JldHVybiAwIT09dGhpcy5yZWdpc3RlcmVkSGFuZGxlcnMuc2l6ZX0sZS5wcm90b3R5cGUudW5yZWdpc3RlckhhbmRsZXI9ZnVuY3Rpb24oZSl7dGhpcy5yZWdpc3RlcmVkSGFuZGxlcnMuaGFzKGUpJiZ0aGlzLnJlZ2lzdGVyZWRIYW5kbGVycy5kZWxldGUoZSl9LGV9KCk7IWZ1bmN0aW9uKGUpe2VbZS5DYWxsYmFjaz0wXT0iQ2FsbGJhY2siLGVbZS5Gb3J3YXJkZXI9MV09IkZvcndhcmRlciJ9KGx8fChsPXt9KSk7dmFyIGQ9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKCl7dGhpcy5uZXh0TWVzc2FnZUlkPTEsdGhpcy5wZW5kaW5nTWVzc2FnZXM9bmV3IE1hcCx0aGlzLmV2ZW50SGFuZGxlcnM9bmV3IE1hcCx0aGlzLmludm9rZUhhbmRsZXJzPW5ldyBNYXAsdGhpcy5ldmVudEZvcndhcmRlcnM9bmV3IEgsdGhpcy5hYmFuZG9uZWRDYWxsSGFuZGxlcnM9bmV3IEgsdGhpcy5uYW1lc3BhY2VWZXJzaW9uQ2hhbmdlSGFuZGxlcnM9bmV3IEgsdGhpcy5ob3N0Tm90aWZpY2F0aW9uSGFuZGxlcnM9bmV3IEgsdGhpcy5maXJzdFN5bmNJZENhbGw9ITAsdGhpcy5uZXh0U3luY0lkPTEsdGhpcy5tYXhNZXNzYWdlSWQ9MTA3Mzc0MTgyM31yZXR1cm4gZS5wcm90b3R5cGUuaXNOYW1lc3BhY2VWZXJzaW9uQ2hhbmdlPWZ1bmN0aW9uKGUpe3JldHVybiBlLmlzSWRSZXF1ZXN0JiYidmVyc2lvbi1jaGFuZ2UiPT09ZS5tZXNzYWdlTmFtZSYmLTM9PT1lLm1lc3NhZ2VJZH0sZS5wcm90b3R5cGUuaGFuZGxlSW52b2thYmxlQ2FsbD1mdW5jdGlvbihlLHQpe3JldHVybiBhKHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24oKXt2YXIgbixyLG8saSxhLGM7cmV0dXJuIHModGhpcywoZnVuY3Rpb24ocyl7c3dpdGNoKHMubGFiZWwpe2Nhc2UgMDppZihuPWZ1bmN0aW9uKG4pe3ZhciByPXt3YXNTdWNjZXNzZnVsOiEwLHJlc3VsdDpudWxsIT1uP246e319LG89e2NvbnRlbnRUeXBlOiJhcHAvcGllIixtZXNzYWdlTmFtZTplLm1lc3NhZ2VOYW1lLG1lc3NhZ2VJZDplLm1lc3NhZ2VJZCxpc0ludm9rYWJsZTohMCxtZXNzYWdlOnJ9O3RoaXMucmFpc2VNZXNzYWdlSW5mb0lmTmVlZGVkKG8sITAsITApLHQuc2VuZE1lc3NhZ2VUb0hvc3Qobyl9LmJpbmQodGhpcykscj1mdW5jdGlvbihuKXt2YXIgcj17d2FzU3VjY2Vzc2Z1bDohMSxlcnJvck1lc3NhZ2U6bi5tZXNzYWdlfSxvPXtjb250ZW50VHlwZToiYXBwL3BpZSIsbWVzc2FnZU5hbWU6ZS5tZXNzYWdlTmFtZSxtZXNzYWdlSWQ6ZS5tZXNzYWdlSWQsaXNJbnZva2FibGU6ITAsbWVzc2FnZTpyfTt0aGlzLnJhaXNlTWVzc2FnZUluZm9JZk5lZWRlZChvLCEwLCEwKSx0LnNlbmRNZXNzYWdlVG9Ib3N0KG8pfS5iaW5kKHRoaXMpLCEobz10aGlzLmludm9rZUhhbmRsZXJzLmdldChlLm1lc3NhZ2VOYW1lKSkpcmV0dXJuWzMsN107aWYoby50eXBlIT09bC5DYWxsYmFjaylyZXR1cm5bMyw1XTtpPW8uaGFuZGxlcixzLmxhYmVsPTE7Y2FzZSAxOnJldHVybiBzLnRyeXMucHVzaChbMSwzLCw0XSksWzQsaShlLm1lc3NhZ2UpXTtjYXNlIDI6cmV0dXJuIGE9cy5zZW50KCksbihhKSxbMyw0XTtjYXNlIDM6cmV0dXJuIGM9cy5zZW50KCkscihjKSxbMyw0XTtjYXNlIDQ6cmV0dXJuWzMsNl07Y2FzZSA1OigwLG8uaGFuZGxlcikoZSkscy5sYWJlbD02O2Nhc2UgNjpyZXR1cm5bMyw4XTtjYXNlIDc6cihuZXcgRXJyb3IoIk5vIGludm9rZSBoYW5kbGVyIHJlZ2lzdGVyZWQiKSkscy5sYWJlbD04O2Nhc2UgODpyZXR1cm5bMl19fSkpfSkpfSxlLnByb3RvdHlwZS5vbk1lc3NhZ2VGcm9tSG9zdD1mdW5jdGlvbihlLHQpe3ZhciBuLHI7aWYoImFwcC9waWUiPT09KG51bGw9PWU/dm9pZCAwOmUuY29udGVudFR5cGUpKWlmKHRoaXMucmFpc2VNZXNzYWdlSW5mb0lmTmVlZGVkKGUsITEpLGUuaXNFdmVudCl7dmFyIG89ZS5tZXNzYWdlTmFtZTt0aGlzLmV2ZW50SGFuZGxlcnMuaGFzKG8pJiZ0aGlzLmV2ZW50SGFuZGxlcnMuZ2V0KG8pLlJhaXNlRXZlbnQoZS5hcmdzKSx0aGlzLmV2ZW50Rm9yd2FyZGVycy5SYWlzZUV2ZW50KGUpfWVsc2UgaWYoZS5pc0ludm9rYWJsZSl0aGlzLmhhbmRsZUludm9rYWJsZUNhbGwoZSx0KTtlbHNle3ZhciBpPWUubWVzc2FnZUlkO2lmKHRoaXMucGVuZGluZ01lc3NhZ2VzLmhhcyhpKSl7dmFyIGE9dGhpcy5wZW5kaW5nTWVzc2FnZXMuZ2V0KGkpO3RoaXMucGVuZGluZ01lc3NhZ2VzLmRlbGV0ZShpKSxhLnByb3h5SGFuZGxlcj9hLnByb3h5SGFuZGxlcihlKTplLmFiYW5kb25lZD90aGlzLmFiYW5kb25lZENhbGxIYW5kbGVycy5SYWlzZUV2ZW50KGUubWVzc2FnZU5hbWUpOmUud2FzU3VjY2Vzc2Z1bD8oKG51bGw9PT0obj1hLnBvc3RQcm9jZXNzaW5nKXx8dm9pZCAwPT09bj92b2lkIDA6bi5wcm9jZXNzKSYmYS5wb3N0UHJvY2Vzc2luZy5wcm9jZXNzKGUubWVzc2FnZSksYS5yZXNvbHZlKChudWxsPT09KHI9YS5wb3N0UHJvY2Vzc2luZyl8fHZvaWQgMD09PXI/dm9pZCAwOnIuY29udmVydCk/YS5wb3N0UHJvY2Vzc2luZy5jb252ZXJ0KGUubWVzc2FnZSk6ZS5tZXNzYWdlKSk6YS5yZWplY3QobmV3IEVycm9yKGUubWVzc2FnZU5hbWUrIjoiK2UuZXJyb3JNZXNzYWdlKSl9ZWxzZSB0aGlzLmlzTmFtZXNwYWNlVmVyc2lvbkNoYW5nZShlKSYmdGhpcy5uYW1lc3BhY2VWZXJzaW9uQ2hhbmdlSGFuZGxlcnMuUmFpc2VFdmVudChlLm1lc3NhZ2UpfX0sZS5wcm90b3R5cGUuYWRkTWVzc2FnZVRvUGVuZGluZ01lc3NhZ2VzPWZ1bmN0aW9uKGUsdCxuLHIpe3ZhciBvPXRoaXMubmV4dE1lc3NhZ2VJZDt0aGlzLm5leHRNZXNzYWdlSWQ9dGhpcy5uZXh0TWVzc2FnZUlkPT09dGhpcy5tYXhNZXNzYWdlSWQ/MTp0aGlzLm5leHRNZXNzYWdlSWQrMTt2YXIgaT17cmVzb2x2ZTplLHJlamVjdDp0LHBvc3RQcm9jZXNzaW5nOm4scHJveHlIYW5kbGVyOnJ9O3JldHVybiB0aGlzLnBlbmRpbmdNZXNzYWdlcy5zZXQobyxpKSxvfSxlLnByb3RvdHlwZS5pbnZva2VJZFJlcXVlc3Q9ZnVuY3Rpb24oZSx0LG4scixvKXt2YXIgaT17Y29udGVudFR5cGU6ImFwcC9waWUiLG1lc3NhZ2VOYW1lOnQsaXNJZFJlcXVlc3Q6ITAsbWVzc2FnZUlkOnRoaXMuYWRkTWVzc2FnZVRvUGVuZGluZ01lc3NhZ2VzKHIsbyksbWVzc2FnZTpufTt0aGlzLnJhaXNlTWVzc2FnZUluZm9JZk5lZWRlZChpLCEwLCEwKSxlLnNlbmRNZXNzYWdlVG9Ib3N0KGkpfSxlLnRocm93UGllU3luY05vdFN1cHBvcnRlZD1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigiU3luY2hyb25vdXMgYnJpZGdlIG5vdCBzdXBwb3J0ZWQiKX0sZS5wcm90b3R5cGUuZ2V0TmV4dFN5bmNJZD1mdW5jdGlvbihlKXt0aGlzLmZpcnN0U3luY0lkQ2FsbCYmKHRoaXMubmV4dFN5bmNJZD1lLmdldFN0YXJ0aW5nU3luY0lkKCksdGhpcy5maXJzdFN5bmNJZENhbGw9ITEpO3ZhciB0PXRoaXMubmV4dFN5bmNJZDtyZXR1cm4gdGhpcy5uZXh0U3luY0lkPXRoaXMubmV4dFN5bmNJZD09PU51bWJlci5NQVhfU0FGRV9JTlRFR0VSPzE6dGhpcy5uZXh0U3luY0lkKzEsdH0sZS5wcm90b3R5cGUuaW52b2tlT25Ib3N0U3luYz1mdW5jdGlvbih0LG4scixvLGksYSl7aWYodC5zZW5kTWVzc2FnZVRvSG9zdFN5bmMpe3ZhciBzPXRoaXMuYWRkTWVzc2FnZVRvUGVuZGluZ01lc3NhZ2VzKG8saSxhKSxjPXtjb250ZW50VHlwZToiYXBwL3BpZSIsbWVzc2FnZU5hbWU6bixzeW5jSWQ6dGhpcy5nZXROZXh0U3luY0lkKHQpLG1lc3NhZ2VJZDpzLG1lc3NhZ2U6cn07dGhpcy5yYWlzZU1lc3NhZ2VJbmZvSWZOZWVkZWQoYywhMCwhMSksdC5zZW5kTWVzc2FnZVRvSG9zdFN5bmMoYyl9ZWxzZSBlLnRocm93UGllU3luY05vdFN1cHBvcnRlZCgpfSxlLnByb3RvdHlwZS5pbnZva2VPbkhvc3Q9ZnVuY3Rpb24oZSx0LG4scixvLGkpe3ZhciBhPXtjb250ZW50VHlwZToiYXBwL3BpZSIsbWVzc2FnZU5hbWU6dCxtZXNzYWdlSWQ6dGhpcy5hZGRNZXNzYWdlVG9QZW5kaW5nTWVzc2FnZXMocixvLGkpLG1lc3NhZ2U6bn07dGhpcy5yYWlzZU1lc3NhZ2VJbmZvSWZOZWVkZWQoYSwhMCwhMCksZS5zZW5kTWVzc2FnZVRvSG9zdChhKX0sZS5wcm90b3R5cGUuZm9yd2FyZFByb3h5TWVzc2FnZT1mdW5jdGlvbihlLHQsbil7aWYoImFwcC9waWUiPT09KG51bGw9PXQ/dm9pZCAwOnQuY29udGVudFR5cGUpKXtpZih0LmlzSW52b2thYmxlKXJldHVybiBlLnNlbmRNZXNzYWdlVG9Ib3N0KHQpLHZvaWQgbihudWxsKTt2YXIgcj10Lm1lc3NhZ2VJZCxvPXRoaXMuYWRkTWVzc2FnZVRvUGVuZGluZ01lc3NhZ2VzKGMsdSx2b2lkIDAsKGZ1bmN0aW9uKGUpe2UubWVzc2FnZUlkPXIsbihlKX0pKTtyZXR1cm4gdC5tZXNzYWdlSWQ9byx0aGlzLnJhaXNlTWVzc2FnZUluZm9JZk5lZWRlZCh0LCEwLCEwLCEwKSxlLnNlbmRNZXNzYWdlVG9Ib3N0KHQpfW4obnVsbCl9LGUucHJvdG90eXBlLnJlZ2lzdGVyRm9yRXZlbnQ9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5ldmVudEhhbmRsZXJzLmhhcyhlKXx8dGhpcy5ldmVudEhhbmRsZXJzLnNldChlLG5ldyBIKSx0aGlzLmV2ZW50SGFuZGxlcnMuZ2V0KGUpLnJlZ2lzdGVySGFuZGxlcih0KX0sZS5wcm90b3R5cGUucmVnaXN0ZXJGb3JJbnZva2FibGU9ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzO2lmKHRoaXMuaW52b2tlSGFuZGxlcnMuaGFzKGUpKXRocm93IG5ldyBFcnJvcigiQSBoYW5kbGVyIGZvciBpbnZva2FibGUgIitlKyIgaXMgYWxyZWFkeSByZWdpc3RlcmQiKTtyZXR1cm4gdGhpcy5pbnZva2VIYW5kbGVycy5zZXQoZSx0KSxmdW5jdGlvbigpe24uaW52b2tlSGFuZGxlcnMuZGVsZXRlKGUpfX0sZS5wcm90b3R5cGUucmVnaXN0ZXJFdmVudEZvcndhcmRlcj1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5ldmVudEZvcndhcmRlcnMucmVnaXN0ZXJIYW5kbGVyKGUpfSxlLnByb3RvdHlwZS5yZWdpc3RlckZvckFiYW5kb25lZENhbGxzPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmFiYW5kb25lZENhbGxIYW5kbGVycy5yZWdpc3RlckhhbmRsZXIoZSl9LGUucHJvdG90eXBlLnJlZ2lzdGVyRm9yTmFtZXNwYWNlVmVyc2lvbkNoYW5nZT1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5uYW1lc3BhY2VWZXJzaW9uQ2hhbmdlSGFuZGxlcnMucmVnaXN0ZXJIYW5kbGVyKGUpfSxlLnByb3RvdHlwZS5yZWdpc3RlckZvckhvc3RNZXNzYWdlTm90aWZpY2F0aW9uPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmhvc3ROb3RpZmljYXRpb25IYW5kbGVycy5yZWdpc3RlckhhbmRsZXIoZSl9LGUucHJvdG90eXBlLnJhaXNlTWVzc2FnZUluZm9JZk5lZWRlZD1mdW5jdGlvbihlLHQsbixyKXtpZih0aGlzLmhvc3ROb3RpZmljYXRpb25IYW5kbGVycy5IYXNIYW5kbGVycygpKXt2YXIgbz17aXNUb0hvc3Q6dCxpc0FzeW5jOm4saXNQcm94aWVkOnIsbWVzc2FnZU5hbWU6ZS5tZXNzYWdlTmFtZSxpc0lkUmVxdWVzdDplLmlzSWRSZXF1ZXN0LHN5bmNJZDplLnN5bmNJZCxtZXNzYWdlSWQ6ZS5tZXNzYWdlSWQsaXNFdmVudDplLmlzRXZlbnQsaXNJbnZva2FibGU6ZS5pc0ludm9rYWJsZSx3YXNTdWNjZXNzZnVsOmUud2FzU3VjY2Vzc2Z1bCxhYmFuZG9uZWQ6ZS5hYmFuZG9uZWR9O3RoaXMuaG9zdE5vdGlmaWNhdGlvbkhhbmRsZXJzLlJhaXNlRXZlbnQobyl9fSxlfSgpLGY9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKGUpe3RoaXMuYnJpZGdlPWUsdGhpcy5wcm9jZXNzb3I9bmV3IGQsdGhpcy5pbnN0YW5jZUlkPW51bGwsdGhpcy5uYW1lc3BhY2VWZXJzaW9ucz1uZXcgTWFwO3ZhciB0PWZ1bmN0aW9uKGUpe3RoaXMubmFtZXNwYWNlVmVyc2lvbnMuaGFzKGUpJiZ0aGlzLm5hbWVzcGFjZVZlcnNpb25zLmRlbGV0ZShlKX0uYmluZCh0aGlzKTt0aGlzLnByb2Nlc3Nvci5yZWdpc3RlckZvck5hbWVzcGFjZVZlcnNpb25DaGFuZ2UodCk7dmFyIG49ZnVuY3Rpb24oZSl7dGhpcy5wcm9jZXNzb3Iub25NZXNzYWdlRnJvbUhvc3QoZSx0aGlzLmJyaWRnZSl9LmJpbmQodGhpcyk7dGhpcy5icmlkZ2UuYWRkSG9zdE1lc3NhZ2VIYW5kbGVyKG4pfXJldHVybiBlLnByb3RvdHlwZS5pc1VzaW5nQnJpZGdlPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmJyaWRnZT09PWV9LGUucHJvdG90eXBlLmludm9rZUhvc3Q9ZnVuY3Rpb24oZSx0LG4pe3ZhciByPXRoaXM7cmV0dXJuIG5ldyBQcm9taXNlKChmdW5jdGlvbihvLGkpe3IucHJvY2Vzc29yLmludm9rZU9uSG9zdChyLmJyaWRnZSxlLHQsbyxpLG4pfSkpfSxlLnByb3RvdHlwZS5pbnZva2VIb3N0U3luYz1mdW5jdGlvbihlLHQsbil7dmFyIHI7cmV0dXJuIHRoaXMucHJvY2Vzc29yLmludm9rZU9uSG9zdFN5bmModGhpcy5icmlkZ2UsZSx0LChmdW5jdGlvbihlKXtyPWV9KSwoZnVuY3Rpb24oZSl7dGhyb3cgZX0pLG4pLHJ9LGUucHJvdG90eXBlLmZvcndhcmRQcm94eU1lc3NhZ2U9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcztyZXR1cm4gbmV3IFByb21pc2UoKGZ1bmN0aW9uKG4pe3QucHJvY2Vzc29yLmZvcndhcmRQcm94eU1lc3NhZ2UodC5icmlkZ2UsZSxuKX0pKX0sZS5wcm90b3R5cGUuaW52b2tlSWRSZXF1ZXN0T25Ib3N0PWZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpcztyZXR1cm4gbmV3IFByb21pc2UoKGZ1bmN0aW9uKHIsbyl7bi5wcm9jZXNzb3IuaW52b2tlSWRSZXF1ZXN0KG4uYnJpZGdlLGUsdCxyLG8pfSkpfSxlLnByb3RvdHlwZS5yZWdpc3RlckZvckV2ZW50PWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMucHJvY2Vzc29yLnJlZ2lzdGVyRm9yRXZlbnQoZSx0KX0sZS5wcm90b3R5cGUucmVnaXN0ZXJGb3JJbnZva2FibGU9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5wcm9jZXNzb3IucmVnaXN0ZXJGb3JJbnZva2FibGUoZSx0KX0sZS5wcm90b3R5cGUucmVnaXN0ZXJFdmVudEZvcndhcmRlcj1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5wcm9jZXNzb3IucmVnaXN0ZXJFdmVudEZvcndhcmRlcihlKX0sZS5wcm90b3R5cGUucmVnaXN0ZXJGb3JBYmFuZG9uZWRDYWxscz1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5wcm9jZXNzb3IucmVnaXN0ZXJGb3JBYmFuZG9uZWRDYWxscyhlKX0sZS5wcm90b3R5cGUucmVnaXN0ZXJGb3JIb3N0TWVzc2FnZU5vdGlmaWNhdGlvbj1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5wcm9jZXNzb3IucmVnaXN0ZXJGb3JIb3N0TWVzc2FnZU5vdGlmaWNhdGlvbihlKX0sZS5wcm90b3R5cGUuZ2V0SW5zdGFuY2VJZD1mdW5jdGlvbigpe3ZhciBlPXRoaXM7cmV0dXJuIG5ldyBQcm9taXNlKChmdW5jdGlvbih0LG4pe2UuaW5zdGFuY2VJZD90KGUuaW5zdGFuY2VJZCk6ZS5pbnZva2VJZFJlcXVlc3RPbkhvc3QoImluc3RhbmNlIiwiaWQiKS50aGVuKChmdW5jdGlvbihuKXtlLmluc3RhbmNlSWQ9bix0KGUuaW5zdGFuY2VJZCl9KSkuY2F0Y2goKGZ1bmN0aW9uKGUpe24oZSl9KSl9KSl9LGUucHJvdG90eXBlLmdldE5hbWVzcGFjZVZlcnNpb249ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcztyZXR1cm4gbmV3IFByb21pc2UoKGZ1bmN0aW9uKG4scil7dC5uYW1lc3BhY2VWZXJzaW9ucy5oYXMoZSk/bih0Lm5hbWVzcGFjZVZlcnNpb25zLmdldChlKSk6dC5pbnZva2VJZFJlcXVlc3RPbkhvc3QoInZlcnNpb24iLGUpLnRoZW4oKGZ1bmN0aW9uKG8pe3ZhciBpPXBhcnNlRmxvYXQobyk7aXNOYU4oaSk/cigiTm9uIG51bWVyaWMgdmVyc2lvbiByZXR1cm5lZCIpOih0Lm5hbWVzcGFjZVZlcnNpb25zLnNldChlLGkpLG4oaSkpfSkpLmNhdGNoKChmdW5jdGlvbihlKXtyKGUpfSkpfSkpfSxlfSgpLFM9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKCl7fXJldHVybiBlLnNldEdsb2JhbFByZXByb2Nlc3NDaGVjaz1mdW5jdGlvbih0KXtlLl9nbG9iYWxQcmVwcm9jZXNzQ2hlY2s9dH0sZS5pc0luaXRpYWxpemF0aW9uTmVlZGVkPWZ1bmN0aW9uKHQpe3JldHVybiFlLl9pbXBsSW5zdGFuY2V8fCFlLl9pbXBsSW5zdGFuY2UuaXNVc2luZ0JyaWRnZSh0KX0sZS5pbml0aWFsaXplPWZ1bmN0aW9uKHQpe2UuaXNJbml0aWFsaXphdGlvbk5lZWRlZCh0KSYmKGUuX2ltcGxJbnN0YW5jZT1uZXcgZih0KSl9LGUucmVzZXRCcmlkZ2VGb3JVbml0VGVzdHM9ZnVuY3Rpb24oKXtlLl9pbXBsSW5zdGFuY2U9bnVsbH0sZS5yZWxvYWRCcmlkZ2VGb3JVbml0VGVzdHM9ZnVuY3Rpb24oKXtpZihlLl9pbXBsSW5zdGFuY2Upe3ZhciB0PWUuX2ltcGxJbnN0YW5jZS5icmlkZ2U7ZS5faW1wbEluc3RhbmNlPW5ldyBmKHQpfX0sZS5mYWlsQnJpZGdlTm90SW5pdGlhbGl6ZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IFByb21pc2UoKGZ1bmN0aW9uKGUsdCl7dChuZXcgRXJyb3IoIkhvc3RCcmlkZ2Ugbm90IGluaXRpYWxpemVkIikpfSkpfSxlLmludm9rZUhvc3Q9ZnVuY3Rpb24odCxuLHIpe3JldHVybiBhKHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24oKXtyZXR1cm4gcyh0aGlzLChmdW5jdGlvbihvKXtzd2l0Y2goby5sYWJlbCl7Y2FzZSAwOnJldHVybiBlLl9pbXBsSW5zdGFuY2U/ZS5fZ2xvYmFsUHJlcHJvY2Vzc0NoZWNrP1s0LGUuX2dsb2JhbFByZXByb2Nlc3NDaGVjayh0KV06WzMsMl06WzMsM107Y2FzZSAxOm8uc2VudCgpLG8ubGFiZWw9MjtjYXNlIDI6cmV0dXJuWzIsZS5faW1wbEluc3RhbmNlLmludm9rZUhvc3QodCxuLHIpXTtjYXNlIDM6cmV0dXJuWzIsZS5mYWlsQnJpZGdlTm90SW5pdGlhbGl6ZWQoKV19fSkpfSkpfSxlLmludm9rZUhvc3RTeW5jPWZ1bmN0aW9uKHQsbixyKXtpZihlLl9pbXBsSW5zdGFuY2UpcmV0dXJuIGUuX2ltcGxJbnN0YW5jZS5pbnZva2VIb3N0U3luYyh0LG4scik7dGhyb3cgbmV3IEVycm9yKCJIb3N0QnJpZGdlIG5vdCBpbml0aWFsaXplZCIpfSxlLmZvcndhcmRQcm94eU1lc3NhZ2U9ZnVuY3Rpb24odCl7cmV0dXJuIGUuX2ltcGxJbnN0YW5jZT9lLl9pbXBsSW5zdGFuY2UuZm9yd2FyZFByb3h5TWVzc2FnZSh0KTplLmZhaWxCcmlkZ2VOb3RJbml0aWFsaXplZCgpfSxlLmdldEluc3RhbmNlSWQ9ZnVuY3Rpb24oKXtyZXR1cm4gYSh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKCl7cmV0dXJuIHModGhpcywoZnVuY3Rpb24odCl7cmV0dXJuIGUuX2ltcGxJbnN0YW5jZT9bMixlLl9pbXBsSW5zdGFuY2UuZ2V0SW5zdGFuY2VJZCgpXTpbMixlLmZhaWxCcmlkZ2VOb3RJbml0aWFsaXplZCgpXX0pKX0pKX0sZS5nZXROYW1lc3BhY2VWZXJzaW9uPWZ1bmN0aW9uKHQpe3JldHVybiBhKHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24oKXtyZXR1cm4gcyh0aGlzLChmdW5jdGlvbihuKXtyZXR1cm4gZS5faW1wbEluc3RhbmNlP1syLGUuX2ltcGxJbnN0YW5jZS5nZXROYW1lc3BhY2VWZXJzaW9uKHQpXTpbMixlLmZhaWxCcmlkZ2VOb3RJbml0aWFsaXplZCgpXX0pKX0pKX0sZS5yZWdpc3RlckZvckV2ZW50PWZ1bmN0aW9uKHQsbil7cmV0dXJuIGUuX2ltcGxJbnN0YW5jZT9lLl9pbXBsSW5zdGFuY2UucmVnaXN0ZXJGb3JFdmVudCh0LG4pOm51bGx9LGUucmVnaXN0ZXJGb3JJbnZva2FibGU9ZnVuY3Rpb24odCxuKXtpZihlLl9pbXBsSW5zdGFuY2Upe3ZhciByPXt0eXBlOmwuQ2FsbGJhY2ssaGFuZGxlcjpufTtyZXR1cm4gZS5faW1wbEluc3RhbmNlLnJlZ2lzdGVyRm9ySW52b2thYmxlKHQscil9cmV0dXJuIG51bGx9LGUucmVnaXN0ZXJJbnZva2FibGVGb3J3YXJkZXI9ZnVuY3Rpb24odCxuKXtpZihlLl9pbXBsSW5zdGFuY2Upe3ZhciByPXt0eXBlOmwuRm9yd2FyZGVyLGhhbmRsZXI6bn07cmV0dXJuIGUuX2ltcGxJbnN0YW5jZS5yZWdpc3RlckZvckludm9rYWJsZSh0LHIpfXJldHVybiBudWxsfSxlLnJlZ2lzdGVyRXZlbnRGb3J3YXJkZXI9ZnVuY3Rpb24odCl7cmV0dXJuIGUuX2ltcGxJbnN0YW5jZT9lLl9pbXBsSW5zdGFuY2UucmVnaXN0ZXJFdmVudEZvcndhcmRlcih0KTpudWxsfSxlLnJlZ2lzdGVyRm9yQWJhbmRvbmVkQ2FsbHM9ZnVuY3Rpb24odCl7cmV0dXJuIGUuX2ltcGxJbnN0YW5jZT9lLl9pbXBsSW5zdGFuY2UucmVnaXN0ZXJGb3JBYmFuZG9uZWRDYWxscyh0KTpudWxsfSxlLnJlZ2lzdGVyRm9ySG9zdE1lc3NhZ2VOb3RpZmljYXRpb249ZnVuY3Rpb24odCl7cmV0dXJuIGUuX2ltcGxJbnN0YW5jZT9lLl9pbXBsSW5zdGFuY2UucmVnaXN0ZXJGb3JIb3N0TWVzc2FnZU5vdGlmaWNhdGlvbih0KTpudWxsfSxlLnRocm93UGllU3luY05vdFN1cHBvcnRlZD1mdW5jdGlvbigpe2QudGhyb3dQaWVTeW5jTm90U3VwcG9ydGVkKCl9LGUuX2ltcGxJbnN0YW5jZT1udWxsLGUuX2dsb2JhbFByZXByb2Nlc3NDaGVjaz1udWxsLGV9KCk7ZnVuY3Rpb24gcCgpe3JldHVybiBhKHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24oKXtyZXR1cm4gcyh0aGlzLChmdW5jdGlvbihlKXtyZXR1cm5bMixuZXcgUHJvbWlzZSgoZnVuY3Rpb24oZSl7Uy5nZXRJbnN0YW5jZUlkKCkudGhlbigoZnVuY3Rpb24odCl7ZSghIXQpfSkpLmNhdGNoKChmdW5jdGlvbigpe2UoITEpfSkpfSkpXX0pKX0pKX1mdW5jdGlvbiBDKGUsdCxuKXtyZXR1cm4gYSh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKCl7dmFyIHI7cmV0dXJuIHModGhpcywoZnVuY3Rpb24obyl7c3dpdGNoKG8ubGFiZWwpe2Nhc2UgMDpyZXR1cm5bNCxwKCldO2Nhc2UgMTpyZXR1cm4gby5zZW50KCk/WzQsUy5nZXROYW1lc3BhY2VWZXJzaW9uKGUpXTpbMywzXTtjYXNlIDI6aWYoKHI9by5zZW50KCkpPj10JiYoIW58fHI8bikpcmV0dXJuWzIsITBdO28ubGFiZWw9MztjYXNlIDM6cmV0dXJuWzIsITFdfX0pKX0pKX10Lkhvc3RCcmlkZ2U9Uyx0LmlzUElFSG9zdFByZXNlbnQ9cCx0LklzVmVyc29uU3VwcG9ydGVkQnlIb3N0PUMsdC50aHJvd0lmVmVyc2lvbklzTm90U3VwcG9ydGVkPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gYSh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKCl7cmV0dXJuIHModGhpcywoZnVuY3Rpb24ocil7c3dpdGNoKHIubGFiZWwpe2Nhc2UgMDpyZXR1cm5bNCxDKGUsdCxuKV07Y2FzZSAxOmlmKCFyLnNlbnQoKSl0aHJvdyBuZXcgRXJyb3IoIlZlcnNpb25Ob3RTdXBwb3J0ZWQgZm9yICIrZSsiOiAiK3QrIiwgIituKTtyZXR1cm5bMl19fSkpfSkpfX0sMTM4NzI6ZnVuY3Rpb24oKXshZnVuY3Rpb24oZSl7InVzZSBzdHJpY3QiO2lmKCFlLmZldGNoKXt2YXIgdD0iVVJMU2VhcmNoUGFyYW1zImluIGUsbj0iU3ltYm9sImluIGUmJiJpdGVyYXRvciJpbiBTeW1ib2wscj0iRmlsZVJlYWRlciJpbiBlJiYiQmxvYiJpbiBlJiZmdW5jdGlvbigpe3RyeXtyZXR1cm4gbmV3IEJsb2IsITB9Y2F0Y2goZSl7cmV0dXJuITF9fSgpLG89IkZvcm1EYXRhImluIGUsaT0iQXJyYXlCdWZmZXIiaW4gZTtpZihpKXZhciBhPVsiW29iamVjdCBJbnQ4QXJyYXldIiwiW29iamVjdCBVaW50OEFycmF5XSIsIltvYmplY3QgVWludDhDbGFtcGVkQXJyYXldIiwiW29iamVjdCBJbnQxNkFycmF5XSIsIltvYmplY3QgVWludDE2QXJyYXldIiwiW29iamVjdCBJbnQzMkFycmF5XSIsIltvYmplY3QgVWludDMyQXJyYXldIiwiW29iamVjdCBGbG9hdDMyQXJyYXldIiwiW29iamVjdCBGbG9hdDY0QXJyYXldIl0scz1mdW5jdGlvbihlKXtyZXR1cm4gZSYmRGF0YVZpZXcucHJvdG90eXBlLmlzUHJvdG90eXBlT2YoZSl9LGM9QXJyYXlCdWZmZXIuaXNWaWV3fHxmdW5jdGlvbihlKXtyZXR1cm4gZSYmYS5pbmRleE9mKE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKSk+LTF9O1MucHJvdG90eXBlLmFwcGVuZD1mdW5jdGlvbihlLHQpe2U9SChlKSx0PWQodCk7dmFyIG49dGhpcy5tYXBbZV07bnx8KG49W10sdGhpcy5tYXBbZV09biksbi5wdXNoKHQpfSxTLnByb3RvdHlwZS5kZWxldGU9ZnVuY3Rpb24oZSl7ZGVsZXRlIHRoaXMubWFwW0goZSldfSxTLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5tYXBbSChlKV07cmV0dXJuIHQ/dFswXTpudWxsfSxTLnByb3RvdHlwZS5nZXRBbGw9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMubWFwW0goZSldfHxbXX0sUy5wcm90b3R5cGUuaGFzPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLm1hcC5oYXNPd25Qcm9wZXJ0eShIKGUpKX0sUy5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKGUsdCl7dGhpcy5tYXBbSChlKV09W2QodCldfSxTLnByb3RvdHlwZS5mb3JFYWNoPWZ1bmN0aW9uKGUsdCl7T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGhpcy5tYXApLmZvckVhY2goKGZ1bmN0aW9uKG4pe3RoaXMubWFwW25dLmZvckVhY2goKGZ1bmN0aW9uKHIpe2UuY2FsbCh0LHIsbix0aGlzKX0pLHRoaXMpfSksdGhpcyl9LFMucHJvdG90eXBlLmtleXM9ZnVuY3Rpb24oKXt2YXIgZT1bXTtyZXR1cm4gdGhpcy5mb3JFYWNoKChmdW5jdGlvbih0LG4pe2UucHVzaChuKX0pKSxmKGUpfSxTLnByb3RvdHlwZS52YWx1ZXM9ZnVuY3Rpb24oKXt2YXIgZT1bXTtyZXR1cm4gdGhpcy5mb3JFYWNoKChmdW5jdGlvbih0KXtlLnB1c2godCl9KSksZihlKX0sUy5wcm90b3R5cGUuZW50cmllcz1mdW5jdGlvbigpe3ZhciBlPVtdO3JldHVybiB0aGlzLmZvckVhY2goKGZ1bmN0aW9uKHQsbil7ZS5wdXNoKFtuLHRdKX0pKSxmKGUpfSxuJiYoUy5wcm90b3R5cGVbU3ltYm9sLml0ZXJhdG9yXT1TLnByb3RvdHlwZS5lbnRyaWVzKTt2YXIgdT1bIkRFTEVURSIsIkdFVCIsIkhFQUQiLCJPUFRJT05TIiwiUE9TVCIsIlBVVCJdO0kucHJvdG90eXBlLmNsb25lPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBJKHRoaXMse2JvZHk6dGhpcy5fYm9keUluaXR9KX0sbS5jYWxsKEkucHJvdG90eXBlKSxtLmNhbGwoZy5wcm90b3R5cGUpLGcucHJvdG90eXBlLmNsb25lPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBnKHRoaXMuX2JvZHlJbml0LHtzdGF0dXM6dGhpcy5zdGF0dXMsc3RhdHVzVGV4dDp0aGlzLnN0YXR1c1RleHQsaGVhZGVyczpuZXcgUyh0aGlzLmhlYWRlcnMpLHVybDp0aGlzLnVybH0pfSxnLmVycm9yPWZ1bmN0aW9uKCl7dmFyIGU9bmV3IGcobnVsbCx7c3RhdHVzOjAsc3RhdHVzVGV4dDoiIn0pO3JldHVybiBlLnR5cGU9ImVycm9yIixlfTt2YXIgbD1bMzAxLDMwMiwzMDMsMzA3LDMwOF07Zy5yZWRpcmVjdD1mdW5jdGlvbihlLHQpe2lmKC0xPT09bC5pbmRleE9mKHQpKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIHN0YXR1cyBjb2RlIik7cmV0dXJuIG5ldyBnKG51bGwse3N0YXR1czp0LGhlYWRlcnM6e2xvY2F0aW9uOmV9fSl9LGUuSGVhZGVycz1TLGUuUmVxdWVzdD1JLGUuUmVzcG9uc2U9ZyxlLmZldGNoPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIG5ldyBQcm9taXNlKChmdW5jdGlvbihuLG8pe3ZhciBpPW5ldyBJKGUsdCksYT1uZXcgWE1MSHR0cFJlcXVlc3Q7YS5vbmxvYWQ9ZnVuY3Rpb24oKXt2YXIgZSx0LHI9e3N0YXR1czphLnN0YXR1cyxzdGF0dXNUZXh0OmEuc3RhdHVzVGV4dCxoZWFkZXJzOihlPWEuZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKCl8fCIiLHQ9bmV3IFMsZS5zcGxpdCgiXHJcbiIpLmZvckVhY2goKGZ1bmN0aW9uKGUpe3ZhciBuPWUuc3BsaXQoIjoiKSxyPW4uc2hpZnQoKS50cmltKCk7aWYocil7dmFyIG89bi5qb2luKCI6IikudHJpbSgpO3QuYXBwZW5kKHIsbyl9fSkpLHQpfTtyLnVybD0icmVzcG9uc2VVUkwiaW4gYT9hLnJlc3BvbnNlVVJMOnIuaGVhZGVycy5nZXQoIlgtUmVxdWVzdC1VUkwiKTt2YXIgbz0icmVzcG9uc2UiaW4gYT9hLnJlc3BvbnNlOmEucmVzcG9uc2VUZXh0O24obmV3IGcobyxyKSl9LGEub25lcnJvcj1mdW5jdGlvbigpe28obmV3IFR5cGVFcnJvcigiTmV0d29yayByZXF1ZXN0IGZhaWxlZCIpKX0sYS5vbnRpbWVvdXQ9ZnVuY3Rpb24oKXtvKG5ldyBUeXBlRXJyb3IoIk5ldHdvcmsgcmVxdWVzdCBmYWlsZWQiKSl9LGEub3BlbihpLm1ldGhvZCxpLnVybCwhMCksImluY2x1ZGUiPT09aS5jcmVkZW50aWFscyYmKGEud2l0aENyZWRlbnRpYWxzPSEwKSwicmVzcG9uc2VUeXBlImluIGEmJnImJihhLnJlc3BvbnNlVHlwZT0iYmxvYiIpLGkuaGVhZGVycy5mb3JFYWNoKChmdW5jdGlvbihlLHQpe2Euc2V0UmVxdWVzdEhlYWRlcih0LGUpfSkpLGEuc2VuZCh2b2lkIDA9PT1pLl9ib2R5SW5pdD9udWxsOmkuX2JvZHlJbml0KX0pKX0sZS5mZXRjaC5wb2x5ZmlsbD0hMH1mdW5jdGlvbiBIKGUpe2lmKCJzdHJpbmciIT10eXBlb2YgZSYmKGU9U3RyaW5nKGUpKSwvW15hLXowLTlcLSMkJSYnKisuXF5fYHx+XS9pLnRlc3QoZSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBjaGFyYWN0ZXIgaW4gaGVhZGVyIGZpZWxkIG5hbWUiKTtyZXR1cm4gZS50b0xvd2VyQ2FzZSgpfWZ1bmN0aW9uIGQoZSl7cmV0dXJuInN0cmluZyIhPXR5cGVvZiBlJiYoZT1TdHJpbmcoZSkpLGV9ZnVuY3Rpb24gZihlKXt2YXIgdD17bmV4dDpmdW5jdGlvbigpe3ZhciB0PWUuc2hpZnQoKTtyZXR1cm57ZG9uZTp2b2lkIDA9PT10LHZhbHVlOnR9fX07cmV0dXJuIG4mJih0W1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdH0pLHR9ZnVuY3Rpb24gUyhlKXt0aGlzLm1hcD17fSxlIGluc3RhbmNlb2YgUz9lLmZvckVhY2goKGZ1bmN0aW9uKGUsdCl7dGhpcy5hcHBlbmQodCxlKX0pLHRoaXMpOmUmJk9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGUpLmZvckVhY2goKGZ1bmN0aW9uKHQpe3RoaXMuYXBwZW5kKHQsZVt0XSl9KSx0aGlzKX1mdW5jdGlvbiBwKGUpe2lmKGUuYm9keVVzZWQpcmV0dXJuIFByb21pc2UucmVqZWN0KG5ldyBUeXBlRXJyb3IoIkFscmVhZHkgcmVhZCIpKTtlLmJvZHlVc2VkPSEwfWZ1bmN0aW9uIEMoZSl7cmV0dXJuIG5ldyBQcm9taXNlKChmdW5jdGlvbih0LG4pe2Uub25sb2FkPWZ1bmN0aW9uKCl7dChlLnJlc3VsdCl9LGUub25lcnJvcj1mdW5jdGlvbigpe24oZS5lcnJvcil9fSkpfWZ1bmN0aW9uIHYoZSl7dmFyIHQ9bmV3IEZpbGVSZWFkZXIsbj1DKHQpO3JldHVybiB0LnJlYWRBc0FycmF5QnVmZmVyKGUpLG59ZnVuY3Rpb24gaChlKXtpZihlLnNsaWNlKXJldHVybiBlLnNsaWNlKDApO3ZhciB0PW5ldyBVaW50OEFycmF5KGUuYnl0ZUxlbmd0aCk7cmV0dXJuIHQuc2V0KG5ldyBVaW50OEFycmF5KGUpKSx0LmJ1ZmZlcn1mdW5jdGlvbiBtKCl7cmV0dXJuIHRoaXMuYm9keVVzZWQ9ITEsdGhpcy5faW5pdEJvZHk9ZnVuY3Rpb24oZSl7aWYodGhpcy5fYm9keUluaXQ9ZSxlKWlmKCJzdHJpbmciPT10eXBlb2YgZSl0aGlzLl9ib2R5VGV4dD1lO2Vsc2UgaWYociYmQmxvYi5wcm90b3R5cGUuaXNQcm90b3R5cGVPZihlKSl0aGlzLl9ib2R5QmxvYj1lO2Vsc2UgaWYobyYmRm9ybURhdGEucHJvdG90eXBlLmlzUHJvdG90eXBlT2YoZSkpdGhpcy5fYm9keUZvcm1EYXRhPWU7ZWxzZSBpZih0JiZVUkxTZWFyY2hQYXJhbXMucHJvdG90eXBlLmlzUHJvdG90eXBlT2YoZSkpdGhpcy5fYm9keVRleHQ9ZS50b1N0cmluZygpO2Vsc2UgaWYoaSYmciYmcyhlKSl0aGlzLl9ib2R5QXJyYXlCdWZmZXI9aChlLmJ1ZmZlciksdGhpcy5fYm9keUluaXQ9bmV3IEJsb2IoW3RoaXMuX2JvZHlBcnJheUJ1ZmZlcl0pO2Vsc2V7aWYoIWl8fCFBcnJheUJ1ZmZlci5wcm90b3R5cGUuaXNQcm90b3R5cGVPZihlKSYmIWMoZSkpdGhyb3cgbmV3IEVycm9yKCJ1bnN1cHBvcnRlZCBCb2R5SW5pdCB0eXBlIik7dGhpcy5fYm9keUFycmF5QnVmZmVyPWgoZSl9ZWxzZSB0aGlzLl9ib2R5VGV4dD0iIjt0aGlzLmhlYWRlcnMuZ2V0KCJjb250ZW50LXR5cGUiKXx8KCJzdHJpbmciPT10eXBlb2YgZT90aGlzLmhlYWRlcnMuc2V0KCJjb250ZW50LXR5cGUiLCJ0ZXh0L3BsYWluO2NoYXJzZXQ9VVRGLTgiKTp0aGlzLl9ib2R5QmxvYiYmdGhpcy5fYm9keUJsb2IudHlwZT90aGlzLmhlYWRlcnMuc2V0KCJjb250ZW50LXR5cGUiLHRoaXMuX2JvZHlCbG9iLnR5cGUpOnQmJlVSTFNlYXJjaFBhcmFtcy5wcm90b3R5cGUuaXNQcm90b3R5cGVPZihlKSYmdGhpcy5oZWFkZXJzLnNldCgiY29udGVudC10eXBlIiwiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkO2NoYXJzZXQ9VVRGLTgiKSl9LHImJih0aGlzLmJsb2I9ZnVuY3Rpb24oKXt2YXIgZT1wKHRoaXMpO2lmKGUpcmV0dXJuIGU7aWYodGhpcy5fYm9keUJsb2IpcmV0dXJuIFByb21pc2UucmVzb2x2ZSh0aGlzLl9ib2R5QmxvYik7aWYodGhpcy5fYm9keUFycmF5QnVmZmVyKXJldHVybiBQcm9taXNlLnJlc29sdmUobmV3IEJsb2IoW3RoaXMuX2JvZHlBcnJheUJ1ZmZlcl0pKTtpZih0aGlzLl9ib2R5Rm9ybURhdGEpdGhyb3cgbmV3IEVycm9yKCJjb3VsZCBub3QgcmVhZCBGb3JtRGF0YSBib2R5IGFzIGJsb2IiKTtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG5ldyBCbG9iKFt0aGlzLl9ib2R5VGV4dF0pKX0sdGhpcy5hcnJheUJ1ZmZlcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9ib2R5QXJyYXlCdWZmZXI/cCh0aGlzKXx8UHJvbWlzZS5yZXNvbHZlKHRoaXMuX2JvZHlBcnJheUJ1ZmZlcik6dGhpcy5ibG9iKCkudGhlbih2KX0pLHRoaXMudGV4dD1mdW5jdGlvbigpe3ZhciBlLHQsbixyPXAodGhpcyk7aWYocilyZXR1cm4gcjtpZih0aGlzLl9ib2R5QmxvYilyZXR1cm4gZT10aGlzLl9ib2R5QmxvYix0PW5ldyBGaWxlUmVhZGVyLG49Qyh0KSx0LnJlYWRBc1RleHQoZSksbjtpZih0aGlzLl9ib2R5QXJyYXlCdWZmZXIpcmV0dXJuIFByb21pc2UucmVzb2x2ZShmdW5jdGlvbihlKXtmb3IodmFyIHQ9bmV3IFVpbnQ4QXJyYXkoZSksbj1uZXcgQXJyYXkodC5sZW5ndGgpLHI9MDtyPHQubGVuZ3RoO3IrKyluW3JdPVN0cmluZy5mcm9tQ2hhckNvZGUodFtyXSk7cmV0dXJuIG4uam9pbigiIil9KHRoaXMuX2JvZHlBcnJheUJ1ZmZlcikpO2lmKHRoaXMuX2JvZHlGb3JtRGF0YSl0aHJvdyBuZXcgRXJyb3IoImNvdWxkIG5vdCByZWFkIEZvcm1EYXRhIGJvZHkgYXMgdGV4dCIpO3JldHVybiBQcm9taXNlLnJlc29sdmUodGhpcy5fYm9keVRleHQpfSxvJiYodGhpcy5mb3JtRGF0YT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnRleHQoKS50aGVuKEEpfSksdGhpcy5qc29uPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudGV4dCgpLnRoZW4oSlNPTi5wYXJzZSl9LHRoaXN9ZnVuY3Rpb24gSShlLHQpe3ZhciBuLHIsbz0odD10fHx7fSkuYm9keTtpZigic3RyaW5nIj09dHlwZW9mIGUpdGhpcy51cmw9ZTtlbHNle2lmKGUuYm9keVVzZWQpdGhyb3cgbmV3IFR5cGVFcnJvcigiQWxyZWFkeSByZWFkIik7dGhpcy51cmw9ZS51cmwsdGhpcy5jcmVkZW50aWFscz1lLmNyZWRlbnRpYWxzLHQuaGVhZGVyc3x8KHRoaXMuaGVhZGVycz1uZXcgUyhlLmhlYWRlcnMpKSx0aGlzLm1ldGhvZD1lLm1ldGhvZCx0aGlzLm1vZGU9ZS5tb2RlLG98fG51bGw9PWUuX2JvZHlJbml0fHwobz1lLl9ib2R5SW5pdCxlLmJvZHlVc2VkPSEwKX1pZih0aGlzLmNyZWRlbnRpYWxzPXQuY3JlZGVudGlhbHN8fHRoaXMuY3JlZGVudGlhbHN8fCJvbWl0IiwhdC5oZWFkZXJzJiZ0aGlzLmhlYWRlcnN8fCh0aGlzLmhlYWRlcnM9bmV3IFModC5oZWFkZXJzKSksdGhpcy5tZXRob2Q9KG49dC5tZXRob2R8fHRoaXMubWV0aG9kfHwiR0VUIixyPW4udG9VcHBlckNhc2UoKSx1LmluZGV4T2Yocik+LTE/cjpuKSx0aGlzLm1vZGU9dC5tb2RlfHx0aGlzLm1vZGV8fG51bGwsdGhpcy5yZWZlcnJlcj1udWxsLCgiR0VUIj09PXRoaXMubWV0aG9kfHwiSEVBRCI9PT10aGlzLm1ldGhvZCkmJm8pdGhyb3cgbmV3IFR5cGVFcnJvcigiQm9keSBub3QgYWxsb3dlZCBmb3IgR0VUIG9yIEhFQUQgcmVxdWVzdHMiKTt0aGlzLl9pbml0Qm9keShvKX1mdW5jdGlvbiBBKGUpe3ZhciB0PW5ldyBGb3JtRGF0YTtyZXR1cm4gZS50cmltKCkuc3BsaXQoIiYiKS5mb3JFYWNoKChmdW5jdGlvbihlKXtpZihlKXt2YXIgbj1lLnNwbGl0KCI9Iikscj1uLnNoaWZ0KCkucmVwbGFjZSgvXCsvZywiICIpLG89bi5qb2luKCI9IikucmVwbGFjZSgvXCsvZywiICIpO3QuYXBwZW5kKGRlY29kZVVSSUNvbXBvbmVudChyKSxkZWNvZGVVUklDb21wb25lbnQobykpfX0pKSx0fWZ1bmN0aW9uIGcoZSx0KXt0fHwodD17fSksdGhpcy50eXBlPSJkZWZhdWx0Iix0aGlzLnN0YXR1cz0ic3RhdHVzImluIHQ/dC5zdGF0dXM6MjAwLHRoaXMub2s9dGhpcy5zdGF0dXM+PTIwMCYmdGhpcy5zdGF0dXM8MzAwLHRoaXMuc3RhdHVzVGV4dD0ic3RhdHVzVGV4dCJpbiB0P3Quc3RhdHVzVGV4dDoiT0siLHRoaXMuaGVhZGVycz1uZXcgUyh0LmhlYWRlcnMpLHRoaXMudXJsPXQudXJsfHwiIix0aGlzLl9pbml0Qm9keShlKX19KCJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZj9zZWxmOnRoaXMpfX0saT17fTtmdW5jdGlvbiBhKGUpe3ZhciB0PWlbZV07aWYodm9pZCAwIT09dClyZXR1cm4gdC5leHBvcnRzO3ZhciBuPWlbZV09e2lkOmUsbG9hZGVkOiExLGV4cG9ydHM6e319O3JldHVybiBvW2VdLmNhbGwobi5leHBvcnRzLG4sbi5leHBvcnRzLGEpLG4ubG9hZGVkPSEwLG4uZXhwb3J0c31hLm09byxhLmFtZEQ9ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoImRlZmluZSBjYW5ub3QgYmUgdXNlZCBpbmRpcmVjdCIpfSxhLmFtZE89e30sYS5GPXt9LGEuRT1lPT57T2JqZWN0LmtleXMoYS5GKS5tYXAoKHQ9PnthLkZbdF0oZSl9KSl9LGEubj1lPT57dmFyIHQ9ZSYmZS5fX2VzTW9kdWxlPygpPT5lLmRlZmF1bHQ6KCk9PmU7cmV0dXJuIGEuZCh0LHthOnR9KSx0fSx0PU9iamVjdC5nZXRQcm90b3R5cGVPZj9lPT5PYmplY3QuZ2V0UHJvdG90eXBlT2YoZSk6ZT0+ZS5fX3Byb3RvX18sYS50PWZ1bmN0aW9uKG4scil7aWYoMSZyJiYobj10aGlzKG4pKSw4JnIpcmV0dXJuIG47aWYoIm9iamVjdCI9PXR5cGVvZiBuJiZuKXtpZig0JnImJm4uX19lc01vZHVsZSlyZXR1cm4gbjtpZigxNiZyJiYiZnVuY3Rpb24iPT10eXBlb2Ygbi50aGVuKXJldHVybiBufXZhciBvPU9iamVjdC5jcmVhdGUobnVsbCk7YS5yKG8pO3ZhciBpPXt9O2U9ZXx8W251bGwsdCh7fSksdChbXSksdCh0KV07Zm9yKHZhciBzPTImciYmbjsib2JqZWN0Ij09dHlwZW9mIHMmJiF+ZS5pbmRleE9mKHMpO3M9dChzKSlPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhzKS5mb3JFYWNoKChlPT5pW2VdPSgpPT5uW2VdKSk7cmV0dXJuIGkuZGVmYXVsdD0oKT0+bixhLmQobyxpKSxvfSxhLmQ9KGUsdCk9Pntmb3IodmFyIG4gaW4gdClhLm8odCxuKSYmIWEubyhlLG4pJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxuLHtlbnVtZXJhYmxlOiEwLGdldDp0W25dfSl9LGEuZj17fSxhLmU9ZT0+UHJvbWlzZS5hbGwoT2JqZWN0LmtleXMoYS5mKS5yZWR1Y2UoKCh0LG4pPT4oYS5mW25dKGUsdCksdCkpLFtdKSksYS51PWU9PiJvd2EuIisoezE1NjA6IlNjaGVkdWxpbmdBc3Npc3RhbnQiLDQwOTc6Ik1haWxDb21wb3NlUHJvamVjdGlvbiIsMjA3MzM6IkZpbGVzQm9vdCIsMjQ3NzI6IkFkZENhbGVuZGFyc1BhbmUiLDMwOTkzOiJDYWxlbmRhckV2ZW50UXVlcnlXZWIiLDUyNjM3OiJ2ZW4uZmx1ZW50Iiw4NTgxNDoiQ2FsZW5kYXJFdmVudHNRdWVyeVdlYiIsOTQ1MjQ6Ik1haWxMaXN0SXRlbUNvbnRleHRNZW51Iiw5NTA0MToiQ2FsZW5kYXJFdmVudE5vdGlmaWNhdGlvbnNXZWIiLDk2MzM0OiJwYXJzZVJlc29sdmVJbmZvIiwxMTQzMjA6IkNoYW5nZU1vZHVsZSIsMTE0OTIyOiJQZXJzb25hUHJlc2VuY2VCYWRnZSIsMTE2MzEyOiJDYWxlbmRhckNsb3VkU2V0dGluZ3MiLDExNjQ1ODoiUG9wb3V0IiwxMTg5MTA6IlBsYWNlc0Jvb3QiLDEyNTQzMzoiTWFpbENvbXBvc2UiLDEzNjgxMjoiQXBwSG9zdEJvb3QiLDEzODk2NDoiVGltZVBhbmVsQ2FsZW5kYXIiLDE1NzAxODoiTWFpbFN0b3JlQWN0aW9ucyIsMTk1MTYwOiJPd2FOb3ZhQ2FjaGUiLDIwMzkxODoidmVuLmdyYXBocWwiLDIxMDEyNDoiU3Vic2NyaWJlVG9Hcm91cEZvbGRlckhpZXJhcmNoeU5vdGlmaWNhdGlvbldlYiIsMjEzODUzOiJDYWxlbmRhclBlZWsiLDIyNTA5NDoicGRmanNXb3JrZXIiLDIyNTQxODoiQ2FsZW5kYXJHcm91cHNRdWVyeVdlYiIsMjM0MTg4OiJxdWVyeUl0ZW1zV2ViIiwyNDMzNTM6IkxvY2F0aW9uQ2FyZCIsMjQ0NjA0OiJNYWlsQ29tcG9zZUFjdGlvbnMiLDI1MTE5NDoiQ2FsZW5kYXJRdWlja0NvbXBvc2UiLDI2OTM4NToiTWFpbENvbW1hbmRBY3Rpb25zIiwyNzEwNDY6IkNhbGVuZGFyQm9hcmRRdWlja1N3aXRjaGVyIiwyNzMxMTY6IkNhbGVuZGFyRnVsbENvbXBvc2VSaWJib24iLDI4Mzk1MzoiUm9vbVNlbGVjdG9yIiwzMDQ2NDE6IkFkZGluc01haWwiLDMxMTc0MToiTm90aWZpY2F0aW9uIiwzMTQ0NTI6IlJlYWRpbmdQYW5lUHJpbnQiLDMyMDkxOToiQ29udmVyc2F0aW9uUmVhZGluZ1BhbmVTdG9yZSIsMzIzNDEyOiJBZGRpbnNDb3JlIiwzMjgyNzE6IkxvY2F0aW9uQ2FyZE9weCIsMzYxMTI2OiJxdWVyeUl0ZW1XZWIiLDM2NzA0NjoiQ2FsZW5kYXJSZWFkRm9ybUxpZmVjeWNsZSIsMzgyMzc1OiJMb3R0aWVBbmltYXRpb24iLDM4MjYzMDoiQ2FsZW5kYXJDb21wb3NlRm9ybUxpZmVjeWNsZSIsMzg4MDc5OiJTaGFyZWRPcHhGdW5jdGlvbmFsQm9vdCIsMzkxMzA2OiJDYWxlbmRhckZ1bGxDb21wb3NlIiwzOTQxODM6IkhpZXJhcmNoeU5vdGlmaWNhdGlvbnNXZWIiLDQxNDI4NDoiU2hhcmVkQm9vdCIsNDIzMzY1OiJDYWxlbmRhckJvb3RzdHJhcFV0aWxzIiw0Mjc5MjU6IkFwcEhvc3RGdW5jdGlvbmFsQm9vdCIsNDI5MjQ2OiJDYWxlbmRhck1vZHVsZU9yY2hlc3RyYXRpb24iLDQzMTM4NToiT3dhTTM2NUFjcXVpc2l0aW9ucyIsNDMxODIyOiJNYWlsUmliYm9uQ29tcG9zZVByb2plY3Rpb24iLDQzNDkwMjoiQ2FsZW5kYXJJdGVtUGVlayIsNDM5MDEzOiJUb2RvQ29udGV4dE1lbnUiLDQ0MzY5NzoiQ29udmVyc2F0aW9uTm9kZXNXZWJSZXNvbHZlciIsNDUwODYwOiJBbmFseXRpY3MiLDQ2MDA2NzoiQ2FsZW5kYXJCb29raW5nc1Nsb3RzIiw0NzkwMDk6IlJlYWRpbmdQYW5lSXRlbSIsNDg2Njc1OiJPZmZsaW5lVGltZVpvbmVzIiw1MDE2OTc6Ik1haWxCb290Iiw1MDY3ODM6IkNhbGVuZGFyUmVhZGluZ1BhbmVSaWJib24iLDUxNjYwNzoiT3dhRGF0YVdvcmtlckNsaWVudCIsNTE4MTQ1OiJDYWxlbmRhckNvbW1hbmRpbmdPcmNoZXN0cmF0aW9uIiw1MjI1MDU6IkNhbGVuZGFyUmVhZGluZ1BhbmVBY3Rpb25zIiw1MjUyNTg6IkNhbGVuZGFyUmVhZGluZ1BhbmUiLDU0Mjk1NDoiUG9zdFNoYXJlZEJvb3QiLDU1OGUzOiJHcm91cHNCb290Iiw1NzE3MjM6IkFkZGlucyIsNTc0MzAxOiJSZWFkaW5nUGFuZSIsNTc2MTEyOiJDYWxlbmRhckJvYXJkQ29udGV4dE1lbnUiLDU3NzMzMjoiVG9rZW5Qcm92aWRlckFzeW5jIiw1ODExMjQ6Ik1haWxSaWJib25SZWFkUHJvamVjdGlvbiIsNTg0OTM4OiJDYWxlbmRhckJvYXJkIiw1ODgxNzM6IkNhbGVuZGFyRm9ybXNQZXJmIiw2MDU1NDk6IkRldlRvb2xzIiw2MDY2OTk6IlRvZG9MaXN0Iiw2MTEyODM6IkFjY291bnRzIiw2MTQyNDA6IkNhbGVuZGFyRGVlcEJvb3QiLDY1MjI5NToiTXNhbEF1dGgiLDY1NTY4MzoiQ2FsZW5kYXJNb2R1bGVTdGl0Y2hlcyIsNjU2NTYxOiJPd2FNMzY1QWNxdWlzaXRpb25zQ2FjaGUiLDY2Mzk3MToiQ2FsZW5kYXJJdGVtQ29udGV4dE1lbnUiLDY3ODAwMToiUmVsYXRlZENvbnRlbnRJbnNpZ2h0c09weCIsNjc5NDMwOiJTdWJzY3JpYmVUb05vdGlmaWNhdGlvbkNoYW5uZWxSZWFkeVN1YnNjcmlwdGlvbldlYiIsNjg1ODI5OiJNYWlsRnVuY3Rpb25hbEJvb3QiLDY5OTM2MjoiT2ZmbGluZVNlc3Npb25EYXRhIiw3MDEyNTY6IlJlYWRpbmdQYW5lQ29udmVyc2F0aW9uIiw3MTIzNTA6IkZvbGRlcldlYiIsNzE1NDAxOiJQZW9wbGVGdW5jdGlvbmFsQm9vdCIsNzIzNzYxOiJPd2FBcHBCYXJUeXBlUG9saWNpZXMiLDc0MzA2OToiUmVhZGluZ1BhbmVTdG9yZSIsNzU2NzY2OiJGb2xkZXJIaWVyYXJjaHlXZWIiLDc2MDc2MzoiQ2FsZW5kYXJDYXJkIiw3NjYzMjQ6Ik93YUFwcEJhckJvb3RzdHJhcCIsNzk1ODc1OiJNYWlsRGVlcEJvb3QiLDgwNTUyNzoiT3dhQXBvbGxvRXhlY3V0ZSIsODA2NjMxOiJJdGVtUm93c1dlYiIsODA5ODE4OiJTdWJzY3JpYmVUb1Jvd05vdGlmaWNhdGlvbnNXZWIiLDgyMDAyMToiVGltZVBhbmVsIiw4Mjc5ODA6IkNoYXJtc0NhdGFsb2ciLDg1ODcwNzoiQ29udmVyc2F0aW9uUm93c1dlYiIsODY0NTY3OiJDYWxlbmRhckZ1bmN0aW9uYWxCb290Iiw4Njc1ODc6IkNhbGVuZGFyQm9va2FibGVUaW1lU2hhcmVkIiw4OTIyNjE6IkNhbGVuZGFyQm9hcmRBc3NldHMiLDg5NzA4MzoiVHhwIiw5MTE1MTY6Ik1haWxSb3V0ZXMiLDkxNDU1NjoiQXBwQmFyQ29udHJvbFF1ZXJ5V2ViIiw5MTczNTI6IkNhbGVuZGFyQm9vdCIsOTIxMDMxOiJPV0FPZmZpY2VCcmFuZEljb25zIiw5MjI1NDI6IlRpbWVQYW5lbEV2ZW50RGV0YWlscyIsOTI1NjcxOiJ2ZW4uZXh0ZnJhbWV3b3JrIiw5MzI1NTc6InZlbi5mbHVlbnRJY29ucyIsOTM4MDYyOiJDYWxlbmRhclN1cmZhY2VJdGVtQ29udGV4dE1lbnVzIiw5NjIyNjE6IlJlbGF0ZWRDb250ZW50Iiw5Njk0MTM6IlRpbWVQYW5lbENvbXBvc2UiLDk5MDM5NzoiUGVvcGxlQm9vdCJ9W2VdfHxlKSsiLm0uanMiLGEubWluaUNzc0Y9ZT0+Im93YS4iKyh7MTU2MDoiU2NoZWR1bGluZ0Fzc2lzdGFudCIsNDA5NzoiTWFpbENvbXBvc2VQcm9qZWN0aW9uIiwyMDczMzoiRmlsZXNCb290IiwyNDc3MjoiQWRkQ2FsZW5kYXJzUGFuZSIsOTQ1MjQ6Ik1haWxMaXN0SXRlbUNvbnRleHRNZW51IiwxMTQ5MjI6IlBlcnNvbmFQcmVzZW5jZUJhZGdlIiwxMTg5MTA6IlBsYWNlc0Jvb3QiLDEyNTQzMzoiTWFpbENvbXBvc2UiLDEzNjgxMjoiQXBwSG9zdEJvb3QiLDEzODk2NDoiVGltZVBhbmVsQ2FsZW5kYXIiLDIxMzg1MzoiQ2FsZW5kYXJQZWVrIiwyNDMzNTM6IkxvY2F0aW9uQ2FyZCIsMjQ0NjA0OiJNYWlsQ29tcG9zZUFjdGlvbnMiLDI1MTE5NDoiQ2FsZW5kYXJRdWlja0NvbXBvc2UiLDI2OTM4NToiTWFpbENvbW1hbmRBY3Rpb25zIiwyNzEwNDY6IkNhbGVuZGFyQm9hcmRRdWlja1N3aXRjaGVyIiwyNzMxMTY6IkNhbGVuZGFyRnVsbENvbXBvc2VSaWJib24iLDI4Mzk1MzoiUm9vbVNlbGVjdG9yIiwzMDQ2NDE6IkFkZGluc01haWwiLDMxNDQ1MjoiUmVhZGluZ1BhbmVQcmludCIsMzIzNDEyOiJBZGRpbnNDb3JlIiwzMjgyNzE6IkxvY2F0aW9uQ2FyZE9weCIsMzY3MDQ2OiJDYWxlbmRhclJlYWRGb3JtTGlmZWN5Y2xlIiwzODI2MzA6IkNhbGVuZGFyQ29tcG9zZUZvcm1MaWZlY3ljbGUiLDM5MTMwNjoiQ2FsZW5kYXJGdWxsQ29tcG9zZSIsNDE0Mjg0OiJTaGFyZWRCb290Iiw0MjkyNDY6IkNhbGVuZGFyTW9kdWxlT3JjaGVzdHJhdGlvbiIsNDMxODIyOiJNYWlsUmliYm9uQ29tcG9zZVByb2plY3Rpb24iLDQzNDkwMjoiQ2FsZW5kYXJJdGVtUGVlayIsNDM5MDEzOiJUb2RvQ29udGV4dE1lbnUiLDQ2MDA2NzoiQ2FsZW5kYXJCb29raW5nc1Nsb3RzIiw0NzkwMDk6IlJlYWRpbmdQYW5lSXRlbSIsNTAxNjk3OiJNYWlsQm9vdCIsNTA2NzgzOiJDYWxlbmRhclJlYWRpbmdQYW5lUmliYm9uIiw1MTgxNDU6IkNhbGVuZGFyQ29tbWFuZGluZ09yY2hlc3RyYXRpb24iLDUyMjUwNToiQ2FsZW5kYXJSZWFkaW5nUGFuZUFjdGlvbnMiLDUyNTI1ODoiQ2FsZW5kYXJSZWFkaW5nUGFuZSIsNTU4ZTM6Ikdyb3Vwc0Jvb3QiLDU3NDMwMToiUmVhZGluZ1BhbmUiLDU3NjExMjoiQ2FsZW5kYXJCb2FyZENvbnRleHRNZW51Iiw1ODExMjQ6Ik1haWxSaWJib25SZWFkUHJvamVjdGlvbiIsNTg0OTM4OiJDYWxlbmRhckJvYXJkIiw2MDY2OTk6IlRvZG9MaXN0Iiw2MTEyODM6IkFjY291bnRzIiw2MTQyNDA6IkNhbGVuZGFyRGVlcEJvb3QiLDY1NTY4MzoiQ2FsZW5kYXJNb2R1bGVTdGl0Y2hlcyIsNjYzOTcxOiJDYWxlbmRhckl0ZW1Db250ZXh0TWVudSIsNjc4MDAxOiJSZWxhdGVkQ29udGVudEluc2lnaHRzT3B4Iiw2ODU4Mjk6Ik1haWxGdW5jdGlvbmFsQm9vdCIsNzAxMjU2OiJSZWFkaW5nUGFuZUNvbnZlcnNhdGlvbiIsNzQzMDY5OiJSZWFkaW5nUGFuZVN0b3JlIiw3NjA3NjM6IkNhbGVuZGFyQ2FyZCIsNzk1ODc1OiJNYWlsRGVlcEJvb3QiLDgyMDAyMToiVGltZVBhbmVsIiw4OTIyNjE6IkNhbGVuZGFyQm9hcmRBc3NldHMiLDg5NzA4MzoiVHhwIiw5MTczNTI6IkNhbGVuZGFyQm9vdCIsOTIyNTQyOiJUaW1lUGFuZWxFdmVudERldGFpbHMiLDk2MjI2MToiUmVsYXRlZENvbnRlbnQiLDk5MDM5NzoiUGVvcGxlQm9vdCJ9W2VdfHxlKSsiLm0uY3NzIixhLmc9ZnVuY3Rpb24oKXtpZigib2JqZWN0Ij09dHlwZW9mIGdsb2JhbFRoaXMpcmV0dXJuIGdsb2JhbFRoaXM7dHJ5e3JldHVybiB0aGlzfHxuZXcgRnVuY3Rpb24oInJldHVybiB0aGlzIikoKX1jYXRjaChlKXtpZigib2JqZWN0Ij09dHlwZW9mIHdpbmRvdylyZXR1cm4gd2luZG93fX0oKSxhLmhtZD1lPT4oKGU9T2JqZWN0LmNyZWF0ZShlKSkuY2hpbGRyZW58fChlLmNoaWxkcmVuPVtdKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiZXhwb3J0cyIse2VudW1lcmFibGU6ITAsc2V0OigpPT57dGhyb3cgbmV3IEVycm9yKCJFUyBNb2R1bGVzIG1heSBub3QgYXNzaWduIG1vZHVsZS5leHBvcnRzIG9yIGV4cG9ydHMuKiwgVXNlIEVTTSBleHBvcnQgc3ludGF4LCBpbnN0ZWFkOiAiK2UuaWQpfX0pLGUpLGEubz0oZSx0KT0+T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsdCksbj17fSxyPSJPd2E6IixhLmw9KGUsdCxvLGkpPT57aWYobltlXSluW2VdLnB1c2godCk7ZWxzZXt2YXIgcyxjO2lmKHZvaWQgMCE9PW8pZm9yKHZhciB1PWRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJzY3JpcHQiKSxsPTA7bDx1Lmxlbmd0aDtsKyspe3ZhciBIPXVbbF07aWYoSC5nZXRBdHRyaWJ1dGUoInNyYyIpPT1lfHxILmdldEF0dHJpYnV0ZSgiZGF0YS13ZWJwYWNrIik9PXIrbyl7cz1IO2JyZWFrfX1zfHwoYz0hMCwocz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKSkuY2hhcnNldD0idXRmLTgiLHMudGltZW91dD0xMjAsYS5uYyYmcy5zZXRBdHRyaWJ1dGUoIm5vbmNlIixhLm5jKSxzLnNldEF0dHJpYnV0ZSgiZGF0YS13ZWJwYWNrIixyK28pLHMuc3JjPWUsMCE9PXMuc3JjLmluZGV4T2Yod2luZG93LmxvY2F0aW9uLm9yaWdpbisiLyIpJiYocy5jcm9zc09yaWdpbj0iYW5vbnltb3VzIikscy5pbnRlZ3JpdHk9YS5zcmlIYXNoZXNbaV0scy5jcm9zc09yaWdpbj0iYW5vbnltb3VzIiksbltlXT1bdF07dmFyIGQ9KHQscik9PntzLm9uZXJyb3I9cy5vbmxvYWQ9bnVsbCxjbGVhclRpbWVvdXQoZik7dmFyIG89bltlXTtpZihkZWxldGUgbltlXSxzLnBhcmVudE5vZGUmJnMucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChzKSxvJiZvLmZvckVhY2goKGU9PmUocikpKSx0KXJldHVybiB0KHIpfSxmPXNldFRpbWVvdXQoZC5iaW5kKG51bGwsdm9pZCAwLHt0eXBlOiJ0aW1lb3V0Iix0YXJnZXQ6c30pLDEyZTQpO3Mub25lcnJvcj1kLmJpbmQobnVsbCxzLm9uZXJyb3IpLHMub25sb2FkPWQuYmluZChudWxsLHMub25sb2FkKSxjJiZkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHMpfX0sYS5yPWU9PnsidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmU3ltYm9sLnRvU3RyaW5nVGFnJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxTeW1ib2wudG9TdHJpbmdUYWcse3ZhbHVlOiJNb2R1bGUifSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pfSxhLm5tZD1lPT4oZS5wYXRocz1bXSxlLmNoaWxkcmVufHwoZS5jaGlsZHJlbj1bXSksZSksYS5wPSIvL3Jlcy1oMy5wdWJsaWMuY2RuLm9mZmljZS5uZXQvb3dhbWFpbC8yMDIzMDQxNDAwMi4wNS9zY3JpcHRzIixhLnNyaUhhc2hlcz17NTY6InNoYTM4NC1qcHJ0UVExbkw0bCtyOEpjRXRCamszbmh5VzdodUt0TnM3bHN1eFJEcUtFRE80eVZSTjB6ZVZLZDdLMUhURXB1Iiw1ODE6InNoYTM4NC1XL3JUdU9XNS9TeGkyclNTd0dUQzAzbHJRei9vRVVndUlXMG8vc1BKb2IrZWxvSVhOblUzRktFeTFJTjY4UEJzIiwxNTYwOiJzaGEzODQtdGpqRUFSN1BKWFZ3QVplT20vcklUM1ZTQ3gwSVhtRG1nRVdmMkdaek0raWlTM1pvcmdHQWVKQm1lSXRSY1RONSIsMTc5MToic2hhMzg0LW1GZmJ6TExCZVoxeGlLSmlwZG0yQWMwdVAvaHhrajNoY0dvSXQ5eWhCbE4rQ1BxcDgxU1dWa2ZQbkFHVml1Q08iLDM3MjE6InNoYTM4NC01Sm10UW9XSnNaajRreDJBeW41U2xxdzhRekVpTjh0Qk1GYURVZEpMNENvZE42VnhUVDExTUpxZlllTXh5QXY2Iiw0MDk3OiJzaGEzODQtMTNrZWhzMUFydFN0RXI0U0swTjRQWFFPa1k0Z2FsdldwUmxJUmxvOGh1ZmpLMXZVSnRWNnZCUFlZYkhNMVZHUyIsNDMwNDoic2hhMzg0LVlWN1N3VS9oY0U4N2trVEx0WFNBdHI0VVdQOXFJb3Q2Y2lsYVJzb1E3eGpoV25Td2gzZkpyemg3WXZsR1hHaGMiLDUxNDA6InNoYTM4NC1sL0xNaXl1c1c4VGNTK24yZWMxeks3UlFrNGpob2dUbFlqVEtDbmNEMUF3b1RxYmdrN1kzaEZ3THR3NHlqTVNYIiw1OTU4OiJzaGEzODQtY0RJZ05iaG4wQ3hUNzhkcTB2dkIxVFBNNWhmYVJKcWdPcVMvcTJYQ1ZvSnQvZDhUZmtWZERVSjhaYjR5MmovSyIsNTk4OToic2hhMzg0LXQxTjZkczJ6NTJQcFZmaWcrdzNhcXNKeGFrNCtVT1ROYzJubU5EZmlrMXlUR25idHBpbW5vQm5MVDFRSFN2cFIiLDc0MTY6InNoYTM4NC1FMk5LTnRxOVZjTmlGbVZsZ0N5R3B4Ulc4SGgwU1VxZVhGbW91WFdES01rOE9iOG9FMEVKMEl4MXF5Y1llanQ1Iiw4NTA0OiJzaGEzODQtemVEdVEvUUI2UlJQV0xvc0dmMHZXVTgvYUgwQUg0NWVxVVFHUUpYUXFYQ2poSVl6Ym1xU2o1R0hjZzFhZFVvUyIsODUyNjoic2hhMzg0LVNaYy84QUdxOC9OeGVKQ21CYWRsbzIwK0I3MUZyWkduNTJEMGh3dW5TUkpMeWViSk1zWXI3MjdGbHA1VzNHTC8iLDEwNDgyOiJzaGEzODQtTnNzL3l5UmN1a08raFZGczRqRWZkQ3l3T3hZUCtsUEFJMlF2UTdvaTNBUE4yYlZORXZyM0hrMmdIY0VzbVlVNiIsMTA3MTE6InNoYTM4NC1NM3RRVHBSbU1McXAyeUJWamlNUlpvNENhQ0w3cE1BQzJLUm1VbDZnZHlNV1NxTUZHcWJtNXE3OGpaZWVqNHhJIiwxNTkzNToic2hhMzg0LWtUY3dKWWluL2pWVjlPZHc0eU5POXpOSXdVVldBdmlkMzhROUQzN0tFZVphc3JTTUVRNDAwM0I0V282OGpmVUMiLDE2MDI1OiJzaGEzODQtU3IxT2l2NHdDaVJQdnJwYUw1ODZlWlpQazlnNmdYZEVBTVZuUEo0eUljZmQ4cldLcEptMEZBOW9OOFRCSTRvUyIsMTYwNDQ6InNoYTM4NC1BbDQrSHVCMFF3UGtZTkVvOW4zUFFtN2d1QkRNaWJxNVNOK3BOY09TL09JUUlTamI3Wi95WHR4YkVYM0p2eFpCIiwxNjM3MToic2hhMzg0LS9XU1QwRVk0bXNBdHNLdXp1cUtxT3Exd0VPckJ0amh3d1ZCVGp6RDlQSzdMdlZkRitPTU9RdjhrQXlpdlVvQ1UiLDE3Mzg4OiJzaGEzODQta2kxc1NZUWk1cjhGS2ZMRWxiTXJPSVpDRko2NlR5Z3pHTkxzcXlSZ1dPcjZsc3hVU25zU3dIcjltb0RJT3VVRyIsMTgyMjg6InNoYTM4NC04Q3F0dGhmTTBGcVRjRnRYS3JaQ0IvZmE2Ymt0MUhkdGhNZWxnNkJ6UElJcTFDbTU3WVVreFVtcGZwL1FKbUtXIiwxODgzODoic2hhMzg0LXFrZU94N0VWT1BNRmptTDBIQkE1T2xnWm1lMElXT2FSRDJSRW12dWEwdFFUekZudWV5QldBUzBERnFCT0RYQloiLDIwMzM4OiJzaGEzODQtaXk3b0N4NytvQUJpbjd1Sjhyck9vUm91d0dHQmllYk8zbUNLaGliSFJycVlzZkNuT2RheDZEWCt3N2F4N3plRiIsMjA3MzM6InNoYTM4NC1vWForcnk4dWhJNExsT29pck51K2lhdlhhMENPdFhvWkhkcHJrNlE5M1B1RitMSk5ra2UvQjlLM0RDK00zYnluIiwyMTA4Nzoic2hhMzg0LUxQTmc5SHo4QXJpbGRwTDhNREFRM29pU215YXJrR2tXamRlWDJ2VEk5S0NlMjVIUlVpK0hnVkFTZGt2R0w5MFUiLDIxNDY1OiJzaGEzODQtUHNxcTdabC9lTm11K2RYajd2MVpOdVNzMmxWT29GTnM3eTh2L2ZYN3l5RHZKNGg0V1hncHc4YnlSRVZjMjlVbSIsMjIxMDg6InNoYTM4NC0rcVRhQWJDT29XUi9LdTVKRU9ZQTVlTWtpeHl3SytlVjdPd2V6b3pxT24vMk9mOFN5YlpLMHh4eU5MMS9mNWxyIiwyMjY3ODoic2hhMzg0LUpMOGhoZmhwdFRTY0JsaGVGa1ladXZGQWxreDAyMEp2Sndrc3VBZjFSeXJXWWhXTURPYk5RMyt2NGQ4dC9aeWciLDIzNDMzOiJzaGEzODQtSWNsMlZCU1ZMR1pNdUJ5OW5KMFJTaGdib2JCT0J0dWJjVUt6UFpMdUpVa0JubHZqVEZUdHc3RHBGSm1Fa1pBYSIsMjM3Mzc6InNoYTM4NC16Mk1GeVBDMUR4U3BsTEhjb0Y1TUlWRnRTaVhlaUpvci9nR01jeENrQS9OdVA1eU9xQ3lJbkJaeVJNMis4ZERyIiwyNDI1Nzoic2hhMzg0LStLK0ZIaGhxR1lYNTBybXdlZ2VYYmlaYTNGRHhSYnVVcWNyZEZCSWVPWHZaUTNkSjdobUd6R1pvdElCQUJNSzEiLDI0NzcyOiJzaGEzODQtRDRkekVMM1lucFEyZXRzQ3hkWUl6ZVJEYS91MytOeTZxQXNGWGhEU1ZhTVdMU1JTN0dRS1MrY2ZtTE5YbE8rbyIsMjYwNjc6InNoYTM4NC0xT28waEtrV0NYYWVYQlQ5RS9TTnh4bmhpSzV2L29VUDRNM3BTZVhsRkZXR2ZYU1VxUG13ck9RT0YrZHQ5Z2ExIiwyNzg3NToic2hhMzg0LWlEL2dnT05XTDBnL2F1dXM0bkJBdkVnWGF4MlhyUWJZdEtxLzRKM00xd09vdThLd0lZVHNReHZEWHJZNndXbFAiLDI4NTU1OiJzaGEzODQtMktRN1hEamxibTF5OTlWaE5NVU9sSzQ3S0Npd1ZPNUplYVpQSGdNMWpoN2VERzBJQ29CTlpEa1hBYUNsc2tDaSIsMjkzNTM6InNoYTM4NC1Cem41L2pIOUhXZDVCd2poYjhxeDkzVlYzdGh2MG1ZOG93Z21ybkw2Y09ZZEx4YTR5MUVRVGxITzdqcWVuL0JSIiwyOTM4MDoic2hhMzg0LTI2aldkT3FtNzJZam1aRmVXQkJ6Z3hrbnNrdUc4eXRDNnE5elRIS2J2UFQvS2x4aktJV1FROUFnQi9XVHFINGwiLDMwOTkzOiJzaGEzODQtZ2NwcnFqaWVsUlJ3Ny9lWjV2RzhOUm1EMHpWeFRWS2Q0bUJ2WlNjMHdrQ3FVQy9maDVTQ2FzVHRTQTg5N3FObCIsMzYwNTQ6InNoYTM4NC1HMzlpaDRPRUtoK29EaWZ1SVkxUHJ1NjlVOGFMV2t2eGpjZndRSFExTFRSMUViaUZ5SVhxUFVSMXFqTHhzcHNTIiwzNzMyOToic2hhMzg0LWZHR3o5NVBGUHZMeUVySzVValNkY09tTEFIOU4zRDJpY2hSazBRVWo0QzhKQ0RQMHlPR3lrWmcrUHYvN3ljZ3QiLDM4MjgyOiJzaGEzODQtenl4ZmdyZGpzOFdsOHI3QVFzQ0hmbHRjb1ZQbXhORVhHOXN0am5jVTlWV3dxbHI3RlVEZDBTb1p5YWVrM25kZyIsNDA5NjI6InNoYTM4NC1ORDZ6SFVraXNnSWNiWjYxaWlXLzNvbkM5UlZUM1hPbjlPRytJd2VoZWRvV3drMjdBUzB6RlQ5bFdES2tnQVpFIiw0MjM5OToic2hhMzg0LThnU0FGK3Izc2ZxdSttSng1OUp1NWhqWjVMNG1KSWxsV2JTUUozeVJqTFZiVzRPUCtOQjJSY0dFRHNMS0J4eGUiLDQ0NjU2OiJzaGEzODQtSStpRTUwekxPcm5oQnV5K3lvMFpWc0VwS3JZTUx5bmZVcklKMUpiQnF0bWJIQXlRVnJnczh2ZXFuOTloUTRlUiIsNDU1NTM6InNoYTM4NC05VG4wTlA4TU1LK0FHU2Z6Y3RrVGNxZElhSlpLSko0cWt4eS8wa2cwc0YxaXMyRzdFWFF0bUJ2OC8xa1ZZN3IrIiw0ODIyOToic2hhMzg0LUpqakNaM0NoNmxxVVRWWUtQQjJFb1huaVRxNXdvQjNnQmtOTmVVTE5MR1lWQWpUL3Y3MEE0NGNBazhIa29RME4iLDQ4NTkzOiJzaGEzODQtK1JTNnRzbUYxZ2FEMHNEcUpSSmlkbk5xRzgyUWtVSWN2TE5BZGkrMEdOaTYzNUgxL3liUFJDUFovVTB6YmZrbCIsNDkxMzc6InNoYTM4NC04RFpCS3ozdlFIcjFBRHVQR1RqeGV6d0dlQ1ZBM2FBOXZOOTFyVVVTRkQwbWRUOXF2WWFIcjB5WklRYm1RNlo0Iiw1MDE5NDoic2hhMzg0LU9nZmoydUtGSW5vb0xNa1hpT0Vxcjk5RUgySk1kMDZwSU1uM2xCeVZvSDhpWHE5NXpCa2o2YjNCU2g2NTlOYmwiLDUxNDQ1OiJzaGEzODQteTJmMU5ZRWRpSVhkUG05ODZ4cjVTMG5Zc0g2bi9hR205Q0REOEdJemRoend1MUxXR05lTFZQc2ZtYTlZUlhxKyIsNTI2Mzc6InNoYTM4NC1TTTV0V1hoQWMvU0JBMTl5TE00cm9lcnVINE9LWlhmZHFhbzNVazEzUXdHYUZpN1BNUC9PdEQwSmY5VEdyaGM2Iiw1MzM0NDoic2hhMzg0LXZvdTJ2ZzhyK0xzSldaamtYRUNlT0Q3cTM1d2VrYjlKUWZkK1hIcGVHZkZzUXhMb2plUmh2YVl2eHJSTWJ4UjQiLDUzOTUwOiJzaGEzODQtbklURTFZTWdrQklBc0syS3hTcGJBSk82ZnE0eklwQkVjOFBpWmdpQmtJbGNhRkR5ekx6T2lCaExJamRqYWowNCIsNTU4MzA6InNoYTM4NC1ZdTViVXhscW5lYW5kaTBtLzJvYUoyOXQrRERUTDd2bG84c0VKc3ZuS0lvZTNCVEZTVjA4VG9Jczh3b0JCelJGIiw1NjI0ODoic2hhMzg0LUpPQVBQZGNZYkl1cEw5ZDA4eWhwb2dMTmxuZEhhRnBuQnNtUGFSRFcxTXl2WlRWK0xpNkJTNUMyOC9YMEZzUlkiLDU3MTk4OiJzaGEzODQtMEhScFZGZ08wRElCMmFyOXNnOHJBc3NtcmQ1dlNvTzYyVSthUWFObGFGaVdRd1BDT0xxcldsYmJ6Y29xYjhzbCIsNjA1MTM6InNoYTM4NC1Hdmd0SnRyWWRqTnRVUG0vU1I0ams2dTMwdHZkRWIxRDhhMTBTd045RmZLL0V4T3EwRG9WVEk5ZldDdDM3TXZTIiw2MDU2NToic2hhMzg0LVFkUlRDZWVlSzJXdEltZXZWQkRCaTlkbWtwdW9NVnNpb2ZxcUtqS1FxdlFreDV3RU9xQ0lHQkFKSFkzUTBNMUQiLDYwODAyOiJzaGEzODQtNGFwcnN6U1pCOTVXeXdncVJtYXFVY0x0RFl3aTdkUVA5MjFWamgrY3ZINzk1Uy9iNDc3YnkvaExBOHI3OEpGUSIsNjI1MDI6InNoYTM4NC1Cb1QyRzBwaGxKcnVQWlB2Q2l2bTdEWTNRZXpsdHhDOVdLOTNWVTVtcGFBZFJ3T0VZMjBYN0pvZW9KY1E2ZzVGIiw2MzUzNjoic2hhMzg0LUp5cG5pVEFWNWF6c2xYakY4YTdFdk1SYWlmMzdlYmhkOGlrSTFEOFk5SWlEVXlRcTNTU3lhTGJRR1lqS216SUIiLDY1NDk2OiJzaGEzODQtMEthWWNLdmxGVHBuOHNXandyb3FhU2ZaM1RuRGgydW1DTWRpME14SlNIVmFWejh1VVdndkIyNnJnM2YxZi9keCIsNjU4ODE6InNoYTM4NC1NakxBOEwxd1NjNE0vYzM3Sm44eEZWOGdsN1djbGFBRVE4NlE1aVhJckVMVlROa09nV2FVM3BuMkxXOGpjNDFQIiw2NjQ5NDoic2hhMzg0LXFET3k4UTl6YkZFSWNpVWY2QlVWb0RqT3lhT0FzTVNiWlJjQjlXUkRtYnJxRmczUEVQbVhqMlFkbnNBVk9DTVAiLDY3MTYyOiJzaGEzODQtaXR1bWlxdG5yT1ljVndRY3ZucFRPR0xBUUMxWUZHeXB0S0xuU3dvUHAyZzF6U1MzK2RQZHNDQytEa29ZM21yMyIsNjczNzE6InNoYTM4NC1kNnRMa3drd3RGQWo3Z1V4Y2krc2I0c1IwZ2RNRldIOFVOY1dnZ3NSRThJRnBLcy9MNTBHc3JSZUw4WG1jd2RHIiw2ODU3MDoic2hhMzg0LUFkUG5KSEJZaXJES05UYmFUUDlNSkt4bExYZlU5VTFhbWdwMm1wR2c3ZW1LOGpQcWlrbkh2SmJ2Z0ViTVJSRTIiLDcwNTAyOiJzaGEzODQtbnFXcjl0VXJBVkY1alF0TTJ3M2FlUVBIZTlWa2NMemNsNFB2QnI3Um5KNGZYWU8rN0JuQVRGb0NaKzhYOHExSSIsNzA3Mzk6InNoYTM4NC1ibjNCencyaWo5bmxST3FPSDFpOTNFRzV4MFdDUlRabEhFdGNjVG9yVnZTcGFGZXJSczIwdmwzMGRJMU5nbVZnIiw3MTE5MToic2hhMzg0LVVPVndhVVE2WDRwVW9pRXVQS0JxOXV3WnZSN0VkOE9qWHlHZUc3Ynk4L2d3WTg3dEwvM3dtKzVQNWdWVVhoNVkiLDcxMjI4OiJzaGEzODQtTExqK2IvTlEydGUvS1Ayd3RaNVpVL3VRRmNGUG0yM21QU2lrZ3RZWWpOVlRZK0w5NWpLQkNXY1ByYnNQZ3pSYSIsNzE1MzA6InNoYTM4NC1YTnVlVGRRWXljRmV2anducjBQKzdCeGZ6Q1A2SVA0aEpHcldiVFNLS3JZMWFqa3d5L0pWVGI5MkpRTCszLzRKIiw3M2UzOiJzaGEzODQtMGtwMXp3RVA5MjhMRGJRVTZmbFZBQWFqbzkzWWc0emJaVlg2UFZJUlp3NUNBL2d2VUZ1RW4zTDQ3REtvZy9iYyIsNzYyMDQ6InNoYTM4NC1aNjlxeVBCTkEybVdjQjdPSElZbzN5NEVZbW1tdjJ1QWZDSURJTmZIM1VBcWJ4Rjh3dEttZHM4Q0d3MUY4V0pWIiw3NjI5Njoic2hhMzg0LTlBVXlIWkJLcVFIUlVwLzhPTWI5S24vSGFzR0EvalNtSUhTRDdhZlRZRlQyUElPTFU0WU1YVzRtTWY2TlQ2R2giLDc2NTY4OiJzaGEzODQtVnNoTVVuaktNYjRVUU0wMCtUd3pheVBzUzg2TVBOdlg2OHFsZ2psZjlnVnBNRCt1VkZybVR0QWZIL0JnM043YiIsNzg5Mzk6InNoYTM4NC15c092SzRVQ0FRM0dtRlBqZEQyVENJeXQ4V2orcU15aDM2c09zU0dxb0NpVXV2bWhoNUVxU3BlT05uVEJuRERmIiw3ODk2OToic2hhMzg0LXlzRmRxTi8yN1psdGV2OVQ4WkdmUGdZenFUN0M2VkdQYWZrRS9hTlJkcGxKRTdzeHVSdGcrVktYRGxQUC8rTW8iLDgwMDA2OiJzaGEzODQtcWJzZkhCNTJuemV5VXB0d1d4SUpSSXZXeHpSM3Q2NkUvN2d0ZTduU3cxZzkydEdaYThmMkg3eXY2aTJ0REo1eCIsODIwMzg6InNoYTM4NC1kUFRnc3JhRURzaFBqN1k3MEl2cjgyMGwwN1ZGaWNkV0trU1VFNVVMT1pDK0RkdkZaZzFVeHB6TGd5ck1mc2dqIiw4MjkyNjoic2hhMzg0LXZXMWVKQnRhdjNhemgxcGd1L1JEamtaaGpTWE5lTDRaOHJzdlJodXJkVlJmVXhLY0VBTVBubkRPMFNPL0RoazUiLDgzNTQ3OiJzaGEzODQtR0lVVzNtQ0hBM1FDM1plMzJsVXNpaUdlbmJLOFlzeWhhTDJwMGVKVkh6cHdHMDJNK3NYOEpKdEQ4WGxpeUZvMSIsODU0OTU6InNoYTM4NC1IU0pqK3ROUk51b25iRWdKZC9KV2I3dlB4dVlUTUNSbW51Zkd2M2dqTkpERUV4Z3ZTNjliRVhiYmpoOXNuVXJyIiw4NTYyMToic2hhMzg0LXVvTHVjbnkrQis2a0o1enFpemYrRHhacytrUU13OFlVOWl2UGovMXV3RG9OeTBlL2pXRzdHKzMrZ1Yya3hwd2giLDg1NjYzOiJzaGEzODQtUTlxcTAwNFRUMVdLbHYrSGcxYkdLenp3QVJiRkw0RnlhUWQxMWhDV1VMOHRUT1ZVTVIrVHMzc21iMktqRHpCMyIsODY1NTY6InNoYTM4NC1BU0RZK3ZlL3ZyS1ZsMElaU0RSeUFVbVV4OTVSNi8vcW9zZlV3dXBNcmdFU01HVElEbVRHMWdyS1JWelpGazlZIiw4Njk3MDoic2hhMzg0LVhidU5wbFVVdFNqM3VPSFhpNUdDREpCeE8xdGtrVmdOSVRiS2Q2S3MvcVZ6VmlGZFpyaVA4WHp0aEcvTEpUN2ciLDg5MTI1OiJzaGEzODQtRTkyeG1hWWlOc0llRXdRVlZucEtDaFMwRkdsRDNHMGpqbTBZMkpjVkg3NVN5M2VPcnpVdHNFazBwUkp0TlN1NyIsOTQwMzY6InNoYTM4NC1KOFRmSmhBOVdHMDZDaUdjbElISThESDdCa0dwM0tiQW8rY1JUK2JMNkhsS25KZXNmV1hZQi9KaUw5bi95U0dqIiw5NDUyNDoic2hhMzg0LU9vNUhyTE96Z0trTGF0anA1T05VclBhdVlCeTdZcUZkV1NXNUVSOU5PVFVQNFdKN3NPQllmOVdrNEJwWWZ1T08iLDk1MDQxOiJzaGEzODQtdmlqRi85eldUQVpvOUpHTFdmelhTYUwzWmdpS0VMUHF1WWwyNjFwNC9kVEZ4Zjdvcmx3elJGQUpXWHpXVGUzMSIsOTYyNzE6InNoYTM4NC1JUmR2clhaTzdaVFZqc3hMeTkzUUVGUE5kL2ZpcGVKbDErdjRucERDQnQzSGVxYXo0MTJ2eUNycmFLOVhrcWUxIiw5NjM0Mjoic2hhMzg0LWg0MEZSSzZmOFZPMkRCc0p5MzJ3cGdNNmtPbXNuRWVKbFMxTUt4b2hIRkFUSzhlS2lpbk5vUzBvV1RLWWV6UDgiLDk4NTg3OiJzaGEzODQtc0JTMUhZMk43SnY1Rk0rV2puaXB0RUZ0bEcrR1FiZU5NcHJCUUZDTmJWSnJST0FRRzVFTDFYQlhhekt1dFpJaSIsOTg2NTI6InNoYTM4NC1ERFplS0VEMjFQZUVGZXl4Y1lNUGo0bUxHTVRPSU9JLzlWeWt6R2hqb05RMm03a1NNaU5DMHMzbUJJbEg5cUF5IiwxMDAwMDY6InNoYTM4NC1RZEJ4dSt2WFRydVEwelM4RjcyK052Z1crU0loelF4bmxZZWxlMzI5UjczVGtHTkVYcit2MXVicWtEZ0RnTWhZIiwxMDAxOTA6InNoYTM4NC14OG5OWkcwcUNDSTBNR25jMytNeEp0T1NBTGpGK0x2NXdiZFBZZ05yOS9oUXhsakNoWEtTOURpcHFxVjg5UDRCIiwxMDIzNDM6InNoYTM4NC16UGE3cTNkeG5mSEVDU0RaRnpoVU16ZWdEVHRkUkNJZ0ZqbnBKUkJXa3dyZmhBYk1lU3RFWDJJS09NdDZ2Q3hVIiwxMDI0ODY6InNoYTM4NC00aFR5VTdFQmdhMHdSR0dtdWFXejNONlF2RkVzT3ZtMllZMDRQZE40NEtLS1A4QktVYjVtTys1NzF3MjhSQVljIiwxMDMxNzU6InNoYTM4NC0yTDh4Ykxwd3JxeGJPUTdrSHVzMjFscGJuNE1JeFczSTNRNk1KR3NYZy9WNHFTbm13VXp0akNyaFhVTzZGSUVjIiwxMDQ2NjQ6InNoYTM4NC1vWnZ2QnEzTTJMVnlRd253eWVuSW9uMGVOSndQeGNvMTBKSHUxZi9qM2pkOFNtL3ZmNUlzYW1QRzMrWHZzOEpRIiwxMDU0NDE6InNoYTM4NC1ob2phNFIyeEhsYXZHQ1I3VFRudlpUOHZlWXJHMWU1KzdWVWFCY2NZVHdCL2tKeUVrczcydUFwR28wN2Y1b0RnIiwxMDYwMDU6InNoYTM4NC1IcnJ1QkU5RytpTzdpOElBNDc2TkZ2ajFqemp3V2tEOU4yRk5BS3hBZWZZTnJNMEZkSW5NcEkrcFhoYytRU09sIiwxMDcwMDk6InNoYTM4NC1OdDJVMXEwSmN3WjRiVjFxQlB3N2xRNkxNdWRrczVwa3ZnaFNCNXFJSmprS01oa1dQcmZMMXVVeDIvYlQ3aE9yIiwxMDg4Mzc6InNoYTM4NC1rd0xGVm0rNGE1TFFqL3o0L3gvL0ZUNkhFNW1nTG1VZlBmTHJLMFMvSkZxUDRBYjdaQ3Urd0djaGtZU3FSUlVhIiwxMDk5MTA6InNoYTM4NC02Ylk5M1hMWTFwaFJCbU5lWGx1VGxNRmw2cCtSVUtjMlpFWElKcUFraDJHenRNdzlXYzhwcGt1VVNXNWR0RVZ3IiwxMTAxNDY6InNoYTM4NC1Xb2gwMFFvNXc4YllKZDYxd1l5dkxJWHdGTXhLd0szMFJQVjJ3eE9nM2RMeGhZUUJUUk01ZmtvblNsbXpZY1AvIiwxMTIzNjQ6InNoYTM4NC04UmVmVmRHS2xBaDJoMGdTNmJJdXpkRitFV3J6NVJsQ2ZHNXNVMFJQVE4vZU1qbGNNTGp1cWJ6RGpjNGoxbXJCIiwxMTI2NjQ6InNoYTM4NC1oWVRuT0RZSHAwaGFqT0dxeGRYams3eVMwUHFIWkhLU0ZGTFBJbVpCSEd3V213ckprTUpicGdlVWN3K0tKbDdOIiwxMTMzMDU6InNoYTM4NC1Sa3FYZktyMnIyY21WYjYxaWl4YXJNeGFFeGs0L3BqSUEzY3dPVWMrNWdmOXI5VG9OZ1hGaHZYSWZYZVNacVdZIiwxMTQzMjA6InNoYTM4NC1hc3BhMnRQczdwOXZueDBnSVVlbTErMjFVWXdCZE45MjB2cTlETzZOdEMySTE4dWF6WUpvWm1EMmV2d25IcStHIiwxMTQ0Mzc6InNoYTM4NC1aR2k1N1FlNlIyTkIvR0lUaUVnaitSR3F6MVBJMUdFQzdzOUduNDZBaUpxZEdCQjBVWjV4cFZ3NHdQaWJzeUR3IiwxMTU0NTQ6InNoYTM4NC1CT2dzeklQb1Nva3dCbXZreUt0bk02WlVVM0g2eUVhUFEvMFMrT1FGd1oyd05lVG91SzYwMVM0c2gxQnRZdG5CIiwxMTYwMTA6InNoYTM4NC1ZeGY2OUVpY3MrTVF1RERTbGptckZrY2Vtd2VaZjNCdVlucWtQRzNaTFlaZUc0RVZvY2dBaU5WeE1JcEUyWDNYIiwxMTY2MTQ6InNoYTM4NC1icnhtT251TzVpeGVYWE9YWjhuN3lxMVZUVHljd0tUeEdDb2I0RVJsdUdSUWVpSWZmc25ndHE0ejhVdWFIbGV5IiwxMTgxMDE6InNoYTM4NC1JQmxteWJLcnV1MllXcXVHcDVQalR1ODR6WFdLUWRwVWxhL3pIZC9zVkRHNi9Mdkpwb0RLWG1jWmFLSkpiUjYrIiwxMTg5MTA6InNoYTM4NC11TXdtcDZ4dzFKSjRjSTN1Wng3TndtdGE5MGY0T0wvL08rbVRUZEZaSlZXRm5FZGQwTkVpcWx5R1M4RWY3WnBMIiwxMTkwMDU6InNoYTM4NC1EZVRReTZUek1vZVZSaUllTDlZNEwvaDJyNXJnNzc5Y3pFT2pGOFpLWTIrNVRKeG1CV1B3N1pnQ3FsK05mZHNZIiwxMjA2MTM6InNoYTM4NC1JdHdNMURyY2tuWG5aWCsyREI0dTB4MjFDaHIzQmJMTXl3WjNUOFByRzBRZUU5QWl2NStvTlp0L0lkTlFZWjROIiwxMjA4MTU6InNoYTM4NC1qWXlMNURkUXJGQXdudDFqa3hINW5TNzN4NWh1SUFXb29XN1pRUXVxR3hlcEFQREttaGxBR2xIeUpuVGlUQ3hMIiwxMjEzNjY6InNoYTM4NC1JUDJ5cWRBdXQ2aHUrN0g4OHc1T2VGdG5xYVN1SUV2Nkp6M2xOTkpBanlaL0R3WUhRY3JZcmZ5NEhoSEt0ZWtVIiwxMjI2MDU6InNoYTM4NC1vVko0eEt5aXRWMFB0azd4TkkvRVVmYndKRTZ6Q0FoSytWOVNMOXhQR0hQVVJLQ0UrTGROdTJxM3ZVeCt2dXIvIiwxMjM1NDc6InNoYTM4NC0weUFXcEhEUjlJY1pVK2Vob3JaOUVpcHBUZ1JuOGVKbnpubG11VUxTUkxMSGJ3SEZmdFF4VnRrVXVBeUVBN3pVIiwxMjM1NjQ6InNoYTM4NC1FRzQ1bVdYTU4yb1RxUlR1Y2ROQUFiOWZlL2FDekJwWTQ4WTVQeHhBdFA5Z3NPT0RFcFJ4NUpSOWFzRGxocTZpIiwxMjM5NDQ6InNoYTM4NC0xMnJwOUVOWUFNNUpWbmxzV1N0ejR0Z3h5UU55SFcwZzJxbEd5K3Z1eVB1a1dXUlR0dEZ4dUw4L3puck8zZGUzIiwxMjU0MzM6InNoYTM4NC16cHF1UkFHaThGTUtUR0Nad1NBL1E5SEwvbVBJMTVmVFVsWVpGVkg0S0R0RmtNSGtFblFFV241Z1UyZDdmM1JMIiwxMjU5NTM6InNoYTM4NC1QNmZTK3NtblpjWE9KUng1Mm5keEFuQkYzemgvQnJXeWJvOWxkbHVGRDNtNWFaM0ZxWU9WYm9MOFhCTXhkRlVvIiwxMjcwMjg6InNoYTM4NC1ielloeXJkTWFuYWRrN0o5b1RlWG4zbVBqaFNRY3c3R1pNZ0xlQkZmWDVzamhRbTZ0Ukt0T3MyWHo4T2pKZDFlIiwxMjc0NjE6InNoYTM4NC15dkt1UHIrSFo5L2tnZVpoVGJSUFY2Y21SQUM5RjhWVTJlTGtUd1FCN0o5TDVmdFpWaFQwRUp5M1daVGY3WVdzIiwxMjgxNzU6InNoYTM4NC0yeVFGVzhyb0NmUWFWNnk1cmlUS0hDTllmVXdVRGlsYkd2SUNyaDl2TlV2aVdqdjhaRkZkYkxvdDJYRnBQRTN5IiwxMjgzNTg6InNoYTM4NC0xaEtVTWM4N1pJRWNMbUlrQzFUcUZEMERRdjZRQjFQWWZRMTZ6UGRFbFM1K2xpNmhYWWozdnZIek9VQWRwcTNuIiwxMjgzNzM6InNoYTM4NC1SVElncjFxVytqUWxrQW5iSWs1eHN6b0FCQnlNMXRNWXlxbzlvR09MY3d5QnJCYTYzYll1b2hRZE1RSlhHNDVyIiwxMjkyNTY6InNoYTM4NC1IRlA4UTNrZUJCM0pGakRXdGo3MWVuTjlBQzFkZWc2ZjZUaU1ESXBJWTNnY3ZUeVlRUUl5b3UyeHFOek1wdHJhIiwxMzAxMDQ6InNoYTM4NC13TE5OY1pIYUljYTlEUHFiWVpSTnpsWWp1YTh2QlFQeUdrWWFwamFQblVJSGZ0YXZ0WW9tZjFrdU9TbFZnTDBuIiwxMzAzNTg6InNoYTM4NC0rbFlDU1lPRUxuN0RBbmhVeTZlSVpoUno4emVSSG5vQ3RZM2tBdTJ4L0MvckZHdWZvT2M0K1BQV1Q4Q3dkNDd5IiwxMzE5NTg6InNoYTM4NC1vekFBbWgvMUVORXJNOEJydjlyZ01LMEdrTWhtTXUzenFzUnhrNnMzZ0xMeWFGUC9ISzVvaFd4NHJEempLdVY4IiwxMzI0NTA6InNoYTM4NC1rdVNKK1BaMTYrUGpqQU5nNWJmTE1iTUZORE1hZlVRY0xRNkFqK0trVFIyMjA5SFpub25SbTg3Wm5EemdMb0syIiwxMzI2ODk6InNoYTM4NC0vT3ZSWS9jbW5mUUVmSjZxQVp5czlCVTgramMyT2dwVE9WeUlTWk5GUWdVaittcnVhNVlhMDF6ZXlJbUVvdkFiIiwxMzM2MTE6InNoYTM4NC1qUW1INVdsa0NlWGdaOXN4R0NDZjg4aE5vM2JkQWpPVXl3RFdQYTlhd2QxUkZZejljUzRLVjNBM0NWRGc2K1l0IiwxMzUwNTA6InNoYTM4NC1YbXh3c1dlbXRFdmc5Y3ZEekg3UWM2aXd5MVE0amhMUzNubFcyU3lQa3BjajdPeTFTYTd5eFQ4dzVRUU1ndXdxIiwxMzU2ODQ6InNoYTM4NC1TM2JOT2FlY2wvbjAzbGMvaUY1UUIxNy9zTkQyNUkyYTNrNEhIeC9LRTBvVU5xakg3cDFtQ1pYbzhhcndYczE5IiwxMzY4MTI6InNoYTM4NC1qbWxsMzNPMVBZTG5oaVl5c2RZcHd0NmZDMVo0TFVEeDRRNkZhdGVkSGJIWmVQSzJ6dzB3aUVLU2xSRmlJU0V3IiwxMzg0MzE6InNoYTM4NC1hdEFZRUVtSDlTRWJWaXhaRU5ic0JCYzRQdU1MeVkzaEUzd3hjcXozS2s5dTVCZEIvNjZFU0ZWUUhOOHUwdFpKIiwxMzg5NjQ6InNoYTM4NC1XdE4yUVhRM3JSN1hVcFVwRkc5MVdhMVJqdTlBS0JiaUJkZzgwczQyZU1kZ2hONjBBb285NWtZUWk5S1FHN29QIiwxMzg5ODM6InNoYTM4NC1zTEhua0tVRG1qK3puRjBYckwrT2JoTEZqbjRTZHY1bDZveHhFOUJlajZNN3dkb0hEU25GUGVhbGppWTltZnJGIiwxNDAxMzE6InNoYTM4NC1vYldEZE9XVmVJM3NkQVl1NUZxYitMVnJwRzk5ZEVFSk52YzdwN3p6MmhFdG9CZEVZeU1uYUdZTno0OU56M2dBIiwxNDIwMzY6InNoYTM4NC1QbW9aR21NbjUxM1lFeGFjbXRnN2c1cFpVdHBjVUZ2aW1rWHh3R3pJZUJ4elNiclRDQS94WDJ2aEg5NVBRRHZhIiwxNDIxOTA6InNoYTM4NC10cFVVWE4vTHprRDhrY2hQTmtHY05CYjFhbzJ1alV0TzlLa3FLcHFkTXl4NGxsK01RS1E0MkJFQVFFWmhRbkZKIiwxNDIzODE6InNoYTM4NC1iRXBndGV1QkU2bWl1MlZ2VnFHQjFOZU9sY0pRRThZVUE2d09jQWhwZm9ucmxSNDZjWkhHRWc1aSsrNFlzMER1IiwxNDI0NzY6InNoYTM4NC03cVF3MnVPNDBaMnpaRTRWbkUrd3BHanVCTzFUdUx3Ym1qcC9GZlI1U3ZhUnJURzgySVFLRjl4SkNxK29kSnVPIiwxNDMzNTM6InNoYTM4NC1xcTFSMDhWVWllVUM1VStZM1E3SzJtbkdXQ1VxRk9iS0Z6TXNYNkdhMUtYeGJVeXJaTzN2V25zdFhuQTZKTnNVIiwxNDU4OTM6InNoYTM4NC1SNW9LczZUQ1dZaDdyVWdtTFd6VmI5MENUYkg4Tll2V3UwRzhxQWRGWjU3bTRtZ3V6R1Rsc0RUMlhKMC8rL3JMIiwxNDgwNTE6InNoYTM4NC0zZ3NCSDk5OGFEb3JYR3FCcmtGNzgxc0xrclZRemhIK2tVUVlGV01pL3FoTGllZ3Y5SEoyT0xyTk5JSlZBTGR0IiwxNDg0NzU6InNoYTM4NC1DM0dhTGorZnZhR2srcHJLL1NOOUY0ZFRubGxqa21BOUNUQ2FvTlB1U1FDcXlMdy9IREpiSUhuYU0wMy96T0NvIiwxNDk0ODc6InNoYTM4NC01MW1UbEUweHc3RUp5aFVRSFFZbVVwMjZJaERjTVl5YjFlaXJaWk9oMFF1S1NqL1ZGekE4VWNKUEI1ZmhlTVpJIiwxNDk3MDU6InNoYTM4NC1Ub2ZLZitVcTFFRHRubHVnU1YrSERZZXFDQ05RamVnb0ErMnFucXVKYjRFQzZCR2R2bkhYaUtkckh3VzBNUU16IiwxNTA0NTM6InNoYTM4NC0yOC8rd0pNSi9UREZnWldFVnZ0YTR6Sjhrc1lvN01wM3Ryd09iRUdYNXNJTk01dXJBNU9RZ1B2M29wSWNHWVFJIiwxNTA5MzE6InNoYTM4NC1BaDFnMXAyeTQ5Vm1RZjVqYWppMzFtYVFFUEM0Wng5eFdua1VBaEJnWS80UGRXSitCTGhPekcwZE5UQ0UxdTNNIiwxNTExMjE6InNoYTM4NC1aNGJXcnY2ZmtBMlRRNnFRQWFJaTNsUXlneDlTVlpJQTBObXNXcjFvUUVQc3RFVzNHcjV6aG1qUFJsNFN6MGYvIiwxNTI1NTI6InNoYTM4NC1acUNMSmFMamY4TDl0NCtEVnZGVDYweEhwQy9XNWFTNy9FcVVaVElUK2kvamJJNEVab0wwSVJYVXNRb1M3NkJsIiwxNTMwMzQ6InNoYTM4NC1ka0N1TWhsOHZobmJWQTE3QlRjSFRXdFhsQzVwbER6STFaUUpQb2llU1Rwd2poMTFFMFpuTE9xOEFYTjhuNFltIiwxNTU3NDE6InNoYTM4NC0xODNDNmM3SU5VVURNMVhpZ010ZEJMUEdacFprczlpdlVkcWdlUUowbnhVQ2U3OS9SekY4aDlOR0pxcVEyVlVVIiwxNTU4NjY6InNoYTM4NC1uUm0wT2F3Rmx4MDBjSkFZUDBNU1JoQW9UM3FyQytmb2dtaE1EbDFDU3ZuZnN6Vy9QVjdnY0hwVGVUUXIxZWpGIiwxNTcwMTg6InNoYTM4NC1ROG5EL3BXaDFyNTJnR1grWnBBWjR3Q1FvQTIwZWxxYUlIQk5oREhhcnRucXo1NnEwVmd4VFdiL2RYSFRxSG9pIiwxNTcwODE6InNoYTM4NC10YmhydGxPaU9Zd043Q3dWWldaYjRqQzJBKzNjaWJRMEtsTi8yY3FLMnJhQ3lHOGVvWFYwSHM4QVZDZUkvN0FRIiwxNTgwNzA6InNoYTM4NC0vdTRtcC9nNXkzTGJLSG9JMjRCUGF4QmhManphV1ZmUllnTlQrZ0ZzaGZZelZRUEZ1OVRjZDJseDBZcThPWC9WIiwxNTgyNTU6InNoYTM4NC1pWkhaaGVBK1pBMktXMjFPUkJ0dm9vRlNORVVpejNPMWtRQkJZdEZUblBPZEtRdzI5bC8rbURIbE1ZR2EycUFFIiwxNTk1MTA6InNoYTM4NC12UU9jdGttL3VBWjF1QktsNVNzOERrcVh6emNmeThib3YxdDR2SkFJc3pTSnNPNUt4b1E1RVNqZ2swanR2Q2poIiwxNjA5MDY6InNoYTM4NC11SGtIVW5vb25rbGF4Y3dDdnRhcGlqa2RGd28wbk5PNWRnV1JxRjFOQ1RXaWRMQXVMRERXUGJBRndlTW5MMDI2IiwxNjA5ODQ6InNoYTM4NC1laExVdzd4S2lKZTJxenAzbGJMc2FQcVZPbHo0WWE5eXhaVFNYREZRRlRsQUl5NVV1aHVTd1JYUVBDVldZbW1xIiwxNjEzNjc6InNoYTM4NC1zVGFwR3IrNzlQczFHWlR6SSsxQVdPbGtiSjRBdU5PQmYwWXA4WWlYQTNOaFRBd1NsM0J0WGJLYWV3L2JWUDlSIiwxNjI0NTk6InNoYTM4NC1ROFllQU1lNFhEa0lrWFB0YXlFZGVLUTR1SHhwY0h1cjhhcGJXL3Fra0RTYzJhalEyMFRkeFRaWmZ2dEIwNGdUIiwxNjI3MTQ6InNoYTM4NC1iRkt5ZkxJZkQ0bmJwMldVOVY1Z3JCK0hXVU54ZVVmcml6bWxETStaQWcydVNRWTZmRkRPTlN4Y0Ywck90V2h3IiwxNjI3NTQ6InNoYTM4NC0reFhuc3BmZ1huZld6TXlhYjB0VFRPVnc2NlBwV2RaNTR0TTZNaUhmTkpKb09Zb1A4SDdHeGdBMzNkQnpmTGN5IiwxNjMxMjY6InNoYTM4NC1QMmhQNzJzNi9xbFZiL1R1UG5MWU1rc2h5N3E1UDhQUW9EVjZOaERIa0VsS3FMVGZFL01OcnlISzVnQTZDNUVPIiwxNjc5ODU6InNoYTM4NC1CeWdUN2VJcmhjVW83SXoweDVvZTJ6MGRVM2dqY0xaSGlrQks2RjFaaW1iNS96WnpzWTNEN2VHd2NKVjRvZkYzIiwxNjg3MzY6InNoYTM4NC1ieEVzTTBvTXdpNXBuUmpRUHo3cDQrQ1A2b3krVEYyQ0FKby9Ya1ptNUwvcWdLUkpnNmNwKy9NVW5pRFl3NHhSIiwxNjkwMTA6InNoYTM4NC1UT3A3NWdkcEo2WWIweXV5MkxtNUJQaXV3MWthVm05dlA0NGJpREhyTGxqK3JGK1NQQkF5bGtkNmJ1NmhXTTBTIiwxNjkzODQ6InNoYTM4NC1ZU3RBNkhZRExheWNBNkpLY2V0NURTdVhzQ2E5NkhVVGIyeGdNd1dMdWRGR0tleTBNNCtubDkwMFhzeGdMMVZFIiwxNzQ0Mjc6InNoYTM4NC03WldrTjZyMm5TWW5GL3k0YUNtSjZHNDYzUGg0OFF4bHA5OGk1L25KNmZPVDdQT3dxYnVFTklvYUZkQlR4NjNEIiwxNzUyNTM6InNoYTM4NC1WQ1dvTnFqaG5aWkNuTXZFejVrQlEydjRsN1ZWaTFWL0JqcHpQdTJLWkJFVlQ4dUF5b2VuWE92b2ZCeFJSQWsyIiwxNzcwNDQ6InNoYTM4NC0zTmh1d0NiVWljTzh0MHp5ZU82WFRjSDZtQlNqeUlpNURCOFdKcG5SclBOdzRDUGZmMWgvcTdLNTBiclVVcHlWIiwxNzcxODA6InNoYTM4NC12YUJEYVlBVHl1QUt1UmZydXk4ZU9vUXFhOWNydThCTWJ1MHhEeUkwTVlWR1VINzhYSVlIUWJhSXdaM1UzMGxqIiwxNzcyMTQ6InNoYTM4NC1xNDNSRE1jekM5OGVlbm1FWWV2TnJyK09RN1pGSDJhbzVDa1psaHB3Vndubm45OG8rZnJpcjV2TmV4ODJqTGhhIiwxNzczOTU6InNoYTM4NC1POVIrWm9BallxaHdGVkVwZDU5cnNDNU1hdzdrU1lIbkRhdmZncUNpSHgrQzBxRTFHL1pIbk1yQTh0eGVFWVplIiwxNzc5NDY6InNoYTM4NC1BRktwR0ZORDdJcWtzcDlyL1JvWEg2TnpSU0xReWFkSnFrYWpYQ2dTdTBHdVpwZlgwdG5JWDJteGo1Wk1LUTA0IiwxNzg3MjU6InNoYTM4NC0xcHVXdElNSzFxNkNWSXM0ZHV4NDc0b0ZBZHdGTnhBR0dGMU5taXlaaC9LOWgwOFRUSE5KZnFKa29POEZscWYvIiwxODEyNTc6InNoYTM4NC01NnNUVkxEK21ZeHp3SWsxdnZ3VHlKcU03eWpKUys5aDd4dW14WFF5Vk00NmdkQnhpYStPUmNlN1JCb0UyQXc5IiwxODE2NzY6InNoYTM4NC12VFp4bjR2NjhuZGxXTTNRcjdEb0lzZEQrRVNqUG9Nb2pEeFdPU1VLeS9NcHJoWVZrYXlMNkNsbGxOSFF4c1F4IiwxODM2NDg6InNoYTM4NC15NjZwUzQ3ZjA2SEhPWGIvRzg0Y0p1NW5VeXNtdkZnVmNDQjVLcWwxa29hUVdSWDZJMFlpaGpUaVNQN1R4d3JlIiwxODQyNzI6InNoYTM4NC1KeU9TbGtkMkJwL25uRzBjWjVEdWhEYW1FY3NTRFJsa3lmTDFSc2dQK3M4Njl5RGZuY1FCL3dFeFBqOEs3YVp6IiwxODY3MzQ6InNoYTM4NC1XM3EwQlVSa2NzWTVxcnU0MEZZMTQ0ejRlYVdRc0FwMXZWbFlia0ZOZ2JVSGI4MVQxbnZ0L3VzYUc5ZlJsaENiIiwxODY5OTQ6InNoYTM4NC00b3M5cWNKN2YwY2NzMGV5UWc3NHAyUU1YMUpMRTQ1cmdlZE1jNGlnaXhsczZ2V3BDU3YwVFozV3dlTWhRcGpWIiwxODcwOTg6InNoYTM4NC1LSmR4aUVVY3JqMmc4Ujh2VVRpekhLNVRMSExRSEdSZjluM1JWdUgyZVVQSFBTdER5YjNnU25oRDN3bFQ5cXFKIiwxODgzMjI6InNoYTM4NC12Q1lGUC9FMW03aXNqaTNGWmhqNGJQRzU4bW1PWmJFWXJkdTFHenBNRzdDaEtmR3pGNzJIeWNtaVZ1WWRjV3RHIiwxOTA2OTM6InNoYTM4NC1Oc3REV2xDNjBWcEFEb1NqUnQvNWg3VDdLcFFWdGEvR240eGNZTlZzVjhMcUxrVjc2NU9pZ1NCN2QvTm5HZlZQIiwxOTA4MTA6InNoYTM4NC1qaFp4bW1oSnIwQm9tc0MwelVRWlNYeVdQOWxiYWE4WFZ1RklrdnhRKzBNYzVLMXp1VzdYOHNWRk5yZGpyZUNBIiwxOTE4Mzk6InNoYTM4NC13STh1d01tdGhZNXFUa3MyUHZxc1hiT2hpTTNTVVZ1aWtBRVhNMFN1YXpCN3VwK2xSWjAwSFRRNW1BeU1VRDBGIiwxOTE5MDU6InNoYTM4NC1TcWEwVkFmZ3B6RmptL0ZHNjh6RkJwOCtZMXNld1dMK1RYZnB4SG1zd3JmSW82K1ROdVpTUnJkamIxL0tZK3p0IiwxOTI3NTM6InNoYTM4NC1rc2ZCY25Wak9RczUrdW9WSWxyR1FhczNVZjRVQjJreGo0L3E2c2JWbHRXVjR6b250MW1LcHRUZCtqYm9RVUhoIiwxOTM3ODc6InNoYTM4NC1nM2V3M2RSQU5hazhFMVhTM2NhN3d4YXZLR25aTDFoczhvNkgybFJ5eHJ4RFhCYTRsZkhaUjI4UEs3ZlVKTDJKIiwxOTM4NTQ6InNoYTM4NC0zd0YvU1BGTHcrV0l2WGppVnBQL05vOHBvVWlkSGFJbGdQbS9hTzhPQ294cGNBZXVJNksrQ2hhUDhqOUExNjRWIiwxOTQxNTE6InNoYTM4NC1iTWRrZEJhWnFXNkVXRkxYNHVEMWp4anVYMVRNeW1KQTFEMzBIaHVuQnB6K0xyeVZnVE1waTdUQnhzTG9sMEswIiwxOTQzNDg6InNoYTM4NC1XM1BkRW5RNk9naHdMd3NKc1I0RHRiSzNCNWtZa3VJMytZeGg5MWdnTHgvMG1oeG9KQkZOZWZzcEZYd1lESmJZIiwxOTUxODE6InNoYTM4NC1XTDkvMXlhcVJVYjY0QjRMbFZqSUR2MWR0ZGZUV2Y5NkY4WWVKYzg5T050NkxreGJ6R1gzclZsQ205RXFMTU44IiwxOTYxMzM6InNoYTM4NC1ZdHpyWmwvUHdSM3F4LzV2U0RRZ2hBTlY3dEFVNGtaUmVxeDl0OHJMZkpYQVRTYUxUeVF3QVNsajErRnRWMldPIiwxOTY2Mzc6InNoYTM4NC1pM3U3NmlScE9VVjgyVHlRSTdyU1puTXBGNTRublErandLaDVBb0p5MXI2aHIyeVFPbG93cE9YTWk4RlVEZWVDIiwxOTg0Mzc6InNoYTM4NC10UHdKYXZqV0Vad1p0VUkwdDl0Zk85RHBYajZvSlZ3VnQxcnVrb1pXaUVRWmt6VHM1TGR1SDFVTm9WMnF3Y0FpIiwxOTg2NTc6InNoYTM4NC0wVEZKSnE2L2Z3bDF1Z1IvKzZybktGUE92RjVDMjBHUVI1akNUQ1RVdmNhb0ZpOVhGRTFBV05Tdjd1K0lBL0FQIiwxOTg2OTk6InNoYTM4NC1KK2V0aGFISkppajVPM0MxdDV6cGFRRkZ2d0RvNERUdU9SWkFxeGtwai9KcDVBTDRXNnM1UitLZHA3dlpxUXNZIiwxOTkxMDc6InNoYTM4NC1QVUtCZ1JnUy94M3ovc3A3TGg2V3ZEdXNnTnRYcW1MZS9nYTR3MGI2b3lua3JWYVlFOGNSbmF2KzQ5cVZJVEIwIiwxOTk2OTg6InNoYTM4NC02VTRnejgwN2lwREh4RVVOSlF5ZW00MmNoTUloVTdrZ0dBNndFQWVHTkczNUlxRUdnb2JzVStqa3dSS1NuVzExIiwxOTk4NTc6InNoYTM4NC1WSm1ISGs1WFQ4NzRORUh3ZFVteStyakFqbWFxUjN3ek4xUU92azdrZExpTnh1VjlkRjJNVjcyS1BkajNtK3VZIiwyMDA3OTg6InNoYTM4NC1DYW4wOUgrWmsyS29PckcyVUIrS2IxWGtMSDJQK0pEcGxuYmxiL25YS05wR2ZYTVhqanZaRWlibGxMaWRiOEhYIiwyMDIwMjQ6InNoYTM4NC10d2VCbHIvTUloczdwQXpGRSsxQnJnT0xNUnJxdWkxakhsT09KWFQwOXpiMDgvK0RXbU80bldtVGZza0VzYnpqIiwyMDI1MzA6InNoYTM4NC0zTlVLQm01YUZUemZscXNudGU5N1ZDNVd6Y29ma1VBSkZvY1F5T2liNTBYTDZ2WlZKWWFCR0VXN00vcUVxdVdmIiwyMDI2NzI6InNoYTM4NC01VjdvY2hLYVg3S25RSHdrdlV3Z0ZXYyttWUJLYlplWjI1YUNzNnQvdWorbmlxdE9UWk1MVTJ2dW9HTDhySUFWIiwyMDMxNDI6InNoYTM4NC1FeUU2a1J5elFjaFFBcEVWUVFacngyUU03K05sODl0TnozQ1kxeVRjVVpWb000eExhY2xsakVsakNQNHFKd1RwIiwyMDM5MTg6InNoYTM4NC01WWhKN3hXTzEvcUZMUWRwb1JoT0hUdVk4bFZRUjdjZ3lBSmZ3K0RiUldJa0cvNEhkSFdUMWVRZ2Y4RW1ISnlHIiwyMDQ2NzM6InNoYTM4NC1uSnhreVJ5SFVpVFBzbFpKMDFFRjk5TlhDdTFXZk1YQ2tGVFE4MFlGUXhxaVBreTNYNzRqZGFKYXZkZE5Fb21yIiwyMDQ5NTY6InNoYTM4NC1iZ0dMUmxyL2k0eUIyVlFoa01scXpUemxLT2g0MWg1V0F3TlM1a1VvMVIrNkM2S1cvQzBZSkpEbUtuRFkwN2lYIiwyMDUzNjQ6InNoYTM4NC1Xc1hQUysvQ2lCdit5NHdPWTNveDJ5WjhTZ0p5OWFQYm5XdW9LaHhkSXNTTDZmOFQwMkpkNjlYZVh2SnRhVndlIiwyMDYzNTg6InNoYTM4NC1rUTYrODYwVHZ3a0pOYWpTY1ZDZ2I0eENsRjBRdE52dEtrSysvdEl5QjZpN0JrdHM2MDdmbGlkQXRHNzFCaFZEIiwyMDY0NDQ6InNoYTM4NC1heE5FamVldVJTalJERlF0eVFZaHloSkhuTVE5OEJzRXM1Q1JmWXhoeWdtbVlxUWZVSlM1U1BGRjh3Sjh5MmVXIiwyMDY2MDM6InNoYTM4NC1Vc1BXUW1GRTM1R1plZkpPYzlxREcrZzUwejNlVUE2MURsc1MzVStURGFESEMwUEdCdWFJbFBSa2hJVkZMeVhtIiwyMDY3MTE6InNoYTM4NC1qak9yc0o4RVNZVmdtM25QQTRqNnM0S2w0YW1Gb1Q1M28vaWs2VzRXMTZRVTRrMXRzREE3d21EeVdGK1Q4eHMrIiwyMDcwNDM6InNoYTM4NC1wUTlXZ1d0Y20wdGlYK29lM3VPcXJxd0dtZDRTRFNDMGFJUkRTcXc1RHBhdXdyUmpTUU1NclFhbkRGWDlNN1JqIiwyMDcyNjY6InNoYTM4NC1GR1pwMTVJcUxxNWhEWnpqSjhHeHdDbU94R21IRHpLQTNJTkZYNFNJYmN5VjRCNWxoZkNqV0djUFJ0NlZYaGpRIiwyMDc3MzE6InNoYTM4NC0rOGk5OENVRGR3b3hhUmFybE5uTXN6dGxaUzQ5R3BFQ29Qc2E3RndjMW5XN2haUG1hdVBMUnNTdDFaUGNMVHVIIiwyMDc5MzI6InNoYTM4NC1MME1zWjJ2ZUJKMkQzdmRqdFFlRTducGlTTm00VzY1Mk02d2I0VjVRcGZSQU5IRVVaV2dIcFhkN1dkOEM4NUtwIiwyMDgzNjg6InNoYTM4NC03V01MeGNJT1IzZXZ3Z1FxTXpsdGxyLzNjZCs4YjRzYzNNQzNlM0lhNFJTcnMyb2g0R0ZjbzBaRUVVQXJHOHl5IiwyMDkzNzc6InNoYTM4NC0reWhlaGxoU2FScmcveU9FbFAweXc5ZUd0RGw3QzBvRGtZTzdmWE9mMy9RejMyUVMraEhEbXdySXZiVDhzTXk5IiwyMDk0MTU6InNoYTM4NC1XazVDVFdYd1gvV1ZuM0xpTkF5dVpnUFNxV1UrT0hybVFZeHY0WlFEYWNObS84aTEzNVFtWG5YY2ZQbXFtT0Q1IiwyMDk3MzE6InNoYTM4NC1RZTByT20yaHhnZVNBSmM5Q0tJRWZjVk82dTRvcWl5U3RZQWRpSDlWUjltY21aWGpGbW1MRGg1RnVKemR0VjZvIiwyMDk4MzY6InNoYTM4NC1LNURzM0FTWHJRNXMrT2JQWmp1T00xd2JNcU5Jc2ZNTndNNTIxSDZpQzBuWXdzUFdYOEYzOVp2R1Q2UVprYkhHIiwyMTAxMjQ6InNoYTM4NC1WanRERzQ3QUptQTRmNkJ3dUxBUWFsdnhQOGZyb3NCM3V3emxHSXVSTFYrVGNJbGpJSStGaHJGditKakd6c0EvIiwyMTA2MTM6InNoYTM4NC1oK2t0V2xvMG1oMjFKdkI4RGQ5emQrTjdCOUpXWTdMMkdjOE5nUlh1QytVRTFVb3pTNUNGczgxcjZScE1SNUJKIiwyMTEzMTQ6InNoYTM4NC1XTlRsN2o1WW13bVV1eVFPQ2pkcStCVTFocnoxcGZGNFdVOTV2NUV0Q0ZWWW9qeGtuV2xYV3FjdTNoZFlPa2l2IiwyMTE0MzY6InNoYTM4NC1tOGF1ZUlVWFpOQVBJZC9QbUowSjR0VEVuTlV5SEVXbSsyV042eldPaHlVMnJJT0NTWWFHVXN1YnZxdXNnaFV5IiwyMTM4NTM6InNoYTM4NC0vTUllek5XYVZ0eGxNdi9XbWdPMlNma3oyRzZLc2dNQ0hJRWR4dlVRNGgxNmppN1hmZThTeFg0a0htUGRvbU5kIiwyMTY2MDM6InNoYTM4NC1GdTE3dFZNT0Y5c1l5Y0c0WGRkZTlqbUt6WkM0bUUvdzZsL2tZU1NFdjMwajg5NzYyYU5QWkJrL3RXL0dXKzhnIiwyMTc0ODM6InNoYTM4NC1xQzV1cEM2VFJZaE1kc3A5dFRhUjdzbWZJT1pLc002dXR2bmxFR2V5aWJqaElKWlhmRjZpRWExV0VXU0p1TUFxIiwyMTc2NjA6InNoYTM4NC1PVHFVWlo4MjQ4KzlrZGZMSm10UHQ0bnlvQ3I2SDlSZXNIUlhyS3JLUUxDT1RpQmZpb3JJWlF5TTBLaGloaHlXIiwyMTc5MzM6InNoYTM4NC1TdDhiL0dwVk56ZUhPSnBWVi9nTG5hL1g2bjJZWHVjdWhLeW1hZmZ3T0tPbXYxTk9XaHNadmpZS3ZSN1ZvRVEzIiwyMTg1NzI6InNoYTM4NC1oOGdTSjlNZFFqQWtSZUhVMWJuR3VBbGkxanBQdGFiOHB0b1lvaEQ1QjRodExHazNzWEtjbmdEbGtSVTFkTFVoIiwyMjA3OTc6InNoYTM4NC1FNmJnY2ptdVNST1dZbUkvWVBJSnhYdmNPRDlVTTZhZmx6ZEVnek1GVjAvQ1cvb3lRdzN3N3hsTEZRay9NVkNFIiwyMjU0MTg6InNoYTM4NC1rOWlUdUtNblBrU052a2dwYlVGQ3BEdHE0Q1FUSGwxQTFIKzhzcTlxL3g0QkR2T0lLY3BMZnE0eTFxYWNScDBaIiwyMjU5MTM6InNoYTM4NC1hczI3UUNKKzNzZ3EyTEQxN3NzV3lHNDBEWmVkVUhOOGsyL3FxRkZMSWx2WUx2RjAzU2M3MWl3SDFIWWVNbk1kIiwyMjY2Njg6InNoYTM4NC05dUo1QWZURzVTQkdselpUYndZQnFocU5DTVpmRmJ3WkxyckJMMmd4cEVjWGR2L09yOUxYRjVEblU4MlE1RVlCIiwyMjY5ODI6InNoYTM4NC1vdE1HSllIcU9yT1BpQ3A4MkRQMzhHbmtjRGNHVWVpaUVOeXVzaFluYVdicFZ4aDdqTTRpRlBTeEdkZE5PN3ZhIiwyMjczNzU6InNoYTM4NC02c2xrMHAzWThZUVJodFJEaU1lOWdBNG1MS2hwWHU1TkNXdmhzTEs0Y0FUVHlsREpGV3NjNFNzWUkxUVpUWmxlIiwyMjkxMDg6InNoYTM4NC1YY3FwVGY1THByamNha1V6d0FIVjdvU09uZy91d3JQQlV2VVFEbnRiUnBoc1VEWFREOHQwS0E3djJFSWhTSWVuIiwyMzAyMzI6InNoYTM4NC1hdDVoKzhnaGFOcWFHdDFqL0lpanJ6clp5cHNxcmI1aUJJNUppZytsYThMYVByZGJ0VG5Rc29sdUlqaDBqQUdUIiwyMzAyNzE6InNoYTM4NC1VM2s0ZjNFNEY5Y0FVdEtxQ3VxbEp6VDBsdnNGZDdETDVvNk5oMnJidkxiOGgrQS9xOEdmV1pwazlPWHJLcThpIiwyMzMyMDA6InNoYTM4NC1QRGFpTVFQVVZMb0tlVG5ZQVg5T3hGbXVaRWpkeGczWVlMSVZJZitTbm5QTEtFMzErdTFLcDdHUmVMT05VNHF6IiwyMzQ1NDU6InNoYTM4NC1wM1llUDIzZ2tma2dDUzhqUXJ6cGJuZDM4aU80eE9LTXprdkhLc2ZXZit2RG5TWWhHRXpKdTRLZk5nM1dyR0VWIiwyMzQ3Mjg6InNoYTM4NC1NL3BHNjFacnRlZkFNeWR0NE9mNDA1Q2hQdDBOMkg1WWJxUnFBNTBid3N6MDA0K3ZZREFuYWxVSktBSW1wbjVQIiwyMzU5ODU6InNoYTM4NC1GWlpFemt2QmUrR0RmcVhWSWFwVjNaRjRQOEZtclFKeDNtSk8zelRQbkltdU01dW1SQmwrVUhqcWZZUW9VeXNnIiwyMzYyMDU6InNoYTM4NC00YWlRajNOWUFhcjMxelgxRE1mNi9ialZIR0p0djRUQXZyN2M0L1lhdWNnTTdCWXMxSlNzN0lVdzVHVlMyT1poIiwyMzc0NTc6InNoYTM4NC1reDRHZ3lLemx0UGJrU2xlY3NSTmhqNGRrOVZCaWUvNG1zWUs1bFBjR21GU1ZTaGZHd1pFM1ZGR0I0dFZPY0M4IiwyMzg2ODY6InNoYTM4NC1mRUVqalVJZ2c0LzU3L2VWNnBQT1dmREFPd2NqYk1UQXNXWXJWeTY2ZytYU0srRVdXTUIxOUVJSGhmcjRrUWErIiwyMzg5NTg6InNoYTM4NC0xWE9zeHpjQkxhYzFCQ3FZWk5QRjBLWExlZjIyK2V2YytLWGJaQ0tFTnZLQnJEeCtGd1RGSE0xQmM0cmpMbVBPIiwyMzkxMzI6InNoYTM4NC1pMXJyK21TUUQ2djIxNEhtZU96WlQxVjNOYUZzUWtHY3VLYTZZNW82OXUrdUFNYmFRSU54dnFieXV6bDdFZEtPIiwyMzkyNjM6InNoYTM4NC1HYlVJcDcyZlhDNkRySHdOSGhWSWhQbHRxdmM3dWRWdFFRSFFjNXpZQ1NRVmxQWlExWHV4NS9nWUdzb01pWWpQIiwyMzkzNTA6InNoYTM4NC0rY1pvd21QdGpVeUtKRFZBU3ZQMWpPaXA4b09QUGx0NXkxWG5UK2VvK3lRS1FKNDdxM3g2MmNyK0dzaHNIbVRXIiwyMzk5ODE6InNoYTM4NC1QYXJxeDJselM4bVJSYm9RQlNHWGkvRUdwKzBBb3Btd0V2ZVFGc0l6M1VjYnZhTFoyQ3QrRWZWeXFnNWlhcndwIiwyNDAxMDI6InNoYTM4NC1MNWQ4ektYckFmdFlYeCsxQnY3MDIwNjE2M1B3b05OdWFwUGV0ZlBQUHl5aVd6elRVWFJybHVFM0tpSzhoMEF4IiwyNDE5Mzk6InNoYTM4NC1oS05iT1B3TFRQN3hIQkxmK1UrSmowM0ZHTVpFZTRucFA3VHVSMzd4OTFMMFBZcFhDRDlyOFUwUmVKYWRBeU9MIiwyNDMzNTM6InNoYTM4NC03UitDZEVtUzNac3l2Wm44MzdvNGg5MzZ5cUN2Mi9JcnZObE9DUGM4blhXNVVLUDVlL1VmcGFXVkZjY2luc0QyIiwyNDQwMDI6InNoYTM4NC1GV2ROTENqWVExUmV2b1BpeXZJVFRQWThKTHNoV1hyaUdRRnl0VW0xQUhjajJhd1BFWmF3QmFzQVV1cndER09NIiwyNDQzMjE6InNoYTM4NC1SOWU3c01MZnBNT1lGaTF3OWVnMVE5b3B0aTQ1cWxIWGtWVUJyZE5walVTVUZVR2ZEeTBaOWs5elJXTERlamZ1IiwyNDQ2MDQ6InNoYTM4NC1qdEZnbWxIR3hOenFpY0xLSnVVZS9ua01TYTZVK2lOM2paS2hXYXVOTVpGMlZwbHdiZ2RXeWo1bkJHTXRHb0lLIiwyNDQ2OTU6InNoYTM4NC1La0FWWkNmTDJ1eUV1V05SNUxyQmZla25uTGdXL2lXc1Q2VU5ReGZvOUI4QjZKY0RZSkNHcHp5dE5BRVBjQ2RNIiwyNDUyOTc6InNoYTM4NC1KYzJlSW0zNGc4RlpKSGtOZVY5QlB0WnJuYkpyUFZCQS9xYjkvcmhFNnl1aVIvRW9MYlJ6bXhzV2pTbjRiYlBlIiwyNDYzMTM6InNoYTM4NC1kZHRFRzE2a254R2s4RlhQOFY0dWlqeE1vMVQ3dTgzMnowbzFTdzFscXRZdGVmcGI3UTAyNlBvemtkOXI5K2ZkIiwyNDY2OTA6InNoYTM4NC1oV1BoSDgwa01qL3hwY0F5MVNCNHFsZmhYWFA0aG12eC9sOVhlU0lHV1ZXcWQ3OE55ZUozalJsbG4vbEVjRFQzIiwyNTEwMzE6InNoYTM4NC01ZHovNkE5dmlOcFdGL2FONlcrYWhTZmZTbm9TN2tvbXZqRHNTS3pXb0o3VmRGNmNZVzZaMFZ1SWJBWWZYQUlPIiwyNTExOTQ6InNoYTM4NC1NQlByQTZCcFhYcmRkUUlnQ05MdzQxaUJja0dxeWJURUZINXZpS2F1WUZLRmVhVU5hZDk1cTI0cVVKMU5TSUF1IiwyNTI0MTU6InNoYTM4NC1Sa29jMDgyZERmWGZrRXljd3RGZk1Zd2p4VCtLWnZEUUhBOTBYNHMzc2xuZCtQYzdkNUZNOUwyUEtoWnMydnY3IiwyNTUxNjM6InNoYTM4NC0yUlQwNjczZEllTkl3WVJpQVVYeTR2bzlsV2N6Q0swY3dCRElZNllReVVja21pOWhBVmNKY1QyVHJRNVZLV3JEIiwyNTUyODk6InNoYTM4NC1pS1FuWTlaMzFGZ050cWdzTXdTQzZicDdENk91UzQ4NXZNU1VKZzZmd3ljNTNQT1ZDbGFtNC8yV0hHY3dteWwrIiwyNTg0OTM6InNoYTM4NC1LZG5oNnU4UTZMZjRHdkJYVG1ZdU5yNU95TndYRzJ4NC9QVW1HRUR6cGozS1Z5ZHI0OFovaVdINmZ5WXR6STZsIiwyNTk2MzM6InNoYTM4NC1ZV2ppWVJ6QmdMdFBJYzlnTFE1czVyUUVPYk1rZGwvVFNZN2I3TE94TWRVSlBiM0RGYTZEQnlSem82ZDBWQ1BKIiwyNjExNTQ6InNoYTM4NC16Y1NISkxKZWNNaFNaeWZ0TW1SMXM4MWdNQlNBTHhPOTlnQldYSkJuZVN4dTNTRklMSThJRnB1V2VQdnVla2RqIiwyNjIyOTQ6InNoYTM4NC1aejArQnJ0VTVFckYvQnRtb2Q1RW5ZRlJWTzFDejBCb09JcU45SGlVQXRreTNWRkVDKy84TGdOS3FPSVJVY1NuIiwyNjI1ODY6InNoYTM4NC00Z3BBa3FpQVNYRzNJOHpXUGQ1YVhQWkpHY2pKZ1d2OGdFalhNRXBKYWZOK0dhL0kxanBHdGhkRldRMkxTOWgxIiwyNjMxMDA6InNoYTM4NC1nU1pPS2ZIZzZoYXIrR2VvZEkxN1Y2d2dyRFlnUWRvdjB2YVlVVTNPTWs4alhBU0s5VWIxMEJBVGRTR0FhaUNxIiwyNjQ1NDg6InNoYTM4NC0ybThEYXJMRml3S0pmMjNTeHVoVmhCcmVPT3k5R3Rnbk1TMmZtK08yRUtCRzBweUhOSStsN3A0YnExdGFSSmQrIiwyNjUzMTA6InNoYTM4NC1WZU9pTXZicHlvUHR6Q2NpN2ltOUZWYURVRCtGTThrWlNoQWFCaTNhV0NUSXFoc1JLcTZ6T2g2dnZnc3RZWXY2IiwyNjY2MTY6InNoYTM4NC1abzBwVHB6bTlmWi9HYVNHSnlxckh6czFjaXhDTTdodFB1dzNxc2VHM0RueklaS3pYOW1qS2JtaEgrN2svY3N2IiwyNjY2NzA6InNoYTM4NC0waUxnUFgybjVaR1czVFZKcEEycno5N20xRnpMQlBSTFFQZWVHR2VVSEZ4WHI4TkhBZGpLbUpGM0dsRFM4YjJOIiwyNjkxODc6InNoYTM4NC1tdHd4bXZpTU5VQkFUUFcwVWlJNXhWelFVU1l0MG5EMXRSQ2ZYeUJFY21TT3cyOW9TV3FtVkNlZE9rcWc3bG1wIiwyNjkyNjc6InNoYTM4NC0zaUVKeEc5eGhlUWVLTEZBNmFtYXVFaWQvWTJZSFMzVWoxTkdUSEZzaEtWY3Q0NHUyNDd4dktDMTJFdHA2UFVQIiwyNjkzNTI6InNoYTM4NC1KS0VpN0hFMVI4azNUVmhPUXNESW5XTXNyQklkcGRGMUNjZkRCb3lWNFFOdUVuWk5UdXdaSng4UmFLTlNvTjB4IiwyNjkzODU6InNoYTM4NC1WajdVUS9xWW5QWXAyM1lLMmE2aVpSdmRwZ2U0OUxWdEdiZ3ZYRTBEcTd5RUVjeXRlNWtGbkF1UGtzczRsUHVIIiwyNzA0MjA6InNoYTM4NC0vQjZVNHplNGFhRVlxTUoyZEFRRjlOc05qVmFlSHhYcEtEb0ZXZFdwNlAxUVB5OXNMc0JON21NaXZuNUdKS2RJIiwyNzExMjQ6InNoYTM4NC10S3l5K3BWNVdpZ2pOL3NkQ2xKSU5WWE9xRFlRM1Fpa3BOVDBLdnNaOWxMK2kyWWMwQVdKRVh6ZkdaclJUcG5oIiwyNzIxMDQ6InNoYTM4NC1obU9tNFVpeHJoUTRaK3Vxa3IyYnpqRFVDV1dCdGNHbDg1N1hzdVZzczAybitFRDMvU2dwcTdyT2I2OTJqUlFMIiwyNzI3Nzg6InNoYTM4NC16aXp5NUdRK2JkWCtzLytiLzg0WXRma2JLRjVVN1dEZG41UDVmNEoyZDVaWjdRRENtUko2c0cyMzNodkkrdGUyIiwyNzI5NTc6InNoYTM4NC1ZQnRRQ2owbnNXMlg0Vi94bXQrYWpJSnJIY3ZnMi9hMEpPbmZ2T3ZpdTB1THdwdGcwQ1JFbTVLaDVHbXRvNU9iIiwyNzMxMTY6InNoYTM4NC1jUmZDeVRyb1JWVnhrVnVJUU5KVXRjV3d3NzNsU2J4WFdYMHJMY25xVmgvYVJLRUZBbDd6RzhuRm52V0dIY1I5IiwyNzM2MTM6InNoYTM4NC1jQnRNVDFqenU4OVQ4Q1ZQei9pWE9hTEJZVEVrV3NzdDRaRnJZSStucmZYWjdrVHJGbG8zQy9sVFZNZUhGM3dVIiwyNzY0NzU6InNoYTM4NC1JZ0pMdHl6Z0lPa0tpUG54VEpUc1NzaEdjVlBFZ2o5Y1VWa0E1dkxoZFNCeS8vdnlRUXM4alY4ZnlXQW5Kd1l3IiwyNzY2Mjk6InNoYTM4NC15M25wR0RkazgyZkw0akd3Q2lQMVhoUXhwVnc0Z0o5TnkzdEh5Ukt4TUNVWXB5alk3RTQ4MU1RdktPS3lhTTY2IiwyNzkxMDU6InNoYTM4NC1PWmhoempGL25pdVgzMEpBZDhJVkdEYTdGbXdPdzgrcHpOai84OGdWWVRnWGVvMmlER01VdGdGYWRyRVd6MVd6IiwyODIyNjc6InNoYTM4NC00M0pSTzg4RUpSMmVjcUFHeVk2NFlDcnQ5Tk5MUjkxNHBpb09DVE51VVNMTWN2d2FMRksyREM4WjFuVkw2dGZ3IiwyODI0NjM6InNoYTM4NC1GY0JQR1FQT0hSSEtJRlRxME5hVEo0ZFhGUEtZUUNENkNNV3pFNlZwYk5LV3NLUlBaZGN2c1M4bkZPNGd1QUpDIiwyODMxNjQ6InNoYTM4NC00dldxZldweDI0NHBBcXZUTzBRUGRjUDB5T2lUamlGZ1dJSDg3QjVYeFhQVVcvTDVBVUh6Sm5ZcnNSZ3FlT2orIiwyODMzMDE6InNoYTM4NC04NzE4V1ZlOWZqU0NPbmxlOGNPQk1RZkpqdVpJRXdNc055eFBlNUxURW5jRDh5SDBOclovV05QVlRpTytNWG1FIiwyODM5NTM6InNoYTM4NC1BNVJlT2Z5dWFISUpESmdlN09QYmN5Vmt6L0oxdnprMERrMTVxSTVkZmt4djB4ZmJsRWJVZ0RyUmpuZW16RjdDIiwyODUzMjA6InNoYTM4NC0xd2VTSVNRY3JtZ2NkTGpCTGtPby90dHl5S2dQQTM4SjhTWDllU04yQVZ6ZGZIQkg1empsdkpsbkZaTjc3ZzlUIiwyODY1Mzk6InNoYTM4NC11MkN5T1h3LzAvM3lJY29mTGl5Wk9VSUl0Q1R3MXhHM1lsRXA2b29UZ25NdktGa0ZDTTluVnZtVzk3WmN2TGt5IiwyODg3ODU6InNoYTM4NC1BSUNuU25MdWJMTUZLc2JoRmlSUWZqUG1GV002VGhhREhQbkVhaFAzeS92QnJqdi9ZTElCaVZZbnNBV3RZSzFDIiwyODk2MDk6InNoYTM4NC1PY1YwZUFtYUxQd3NrLzZkNFFTTkFXUkZRVEhyZmhhRHdSYms2ekN1N3NLOWVISm1xUElMMTRUL254cjFYVHkxIiwyOTAxNTI6InNoYTM4NC1XQUg3THBEWmZOT2g5RW9Bdk5kUy9CVVJYTThMRjgrYUUwR3V4U2JyQlovMEl2ZXBYUkVYdUNBVXlZVGVzdDdwIiwyOTA1MjM6InNoYTM4NC0ra1pGNzlNN1JWRVBPdnFMWXpqbDAzSFBxZUxFbUpRdVN4eVpqLzYwU2dPNk5qN1ErdVlGQWtXRThQUUxncjRFIiwyOTA1OTE6InNoYTM4NC10cjVLU0U2UzVTWmtnSzRiS3p4QXJOTUFzMExpZ0N0NXZNWkVrVnB2ZEFSNCtNM0lxVDBQc1prVndoUHVJV3YzIiwyOTEyMTg6InNoYTM4NC1vd1h4VnhDdUNuVHYvYktjNXY0ZnpheDYvak9EaUxiaDUvcG9ETUpCKy9ramRwOFoyOTdxWE9sZVVWenQvK3d4IiwyOTE5OTI6InNoYTM4NC1veDhNZi9hVEhRWDJmOVhucUNYVUdPOUlETXpOTldtbjJwNFhDTUpCd2srdllvN2NrZFZHOGJCaWZjaS95bnh0IiwyOTMzODg6InNoYTM4NC0zTWRremdyZlBtbGNRRno3cG1CdjZDOFh3OVlMOU9namcrZW4ybUo5dWxqQTQ5RVlramgvYmNZSzVCREVZeTY5IiwyOTQzNTg6InNoYTM4NC16K3BJRWg3Rm1yTkI2RzBpNHpteVh3NWdkdHdNekRGT3R3b3NOa0xTZlpTaXFQYndyVndrMFlsby9FTFd3cnhUIiwyOTUyNTQ6InNoYTM4NC1QaW13WWdYVTJtQWJXZFZnZDh3Wm55UUxGaTI4aHc4eWdjNFo4WFBHbURJZ2YzNmxOb0pYOHVLc050L1J2L3pFIiwyOTU3NTk6InNoYTM4NC1SeEJXSk91RDE5QmFlaEIyK3MxVk9PcSt2bHZ2VURhL1E5eXJMOGlETU4ra3d3Vnk3NE93ZE9DbWx6RW9ZTlZjIiwyOTYxODc6InNoYTM4NC1uMFozVzBwaUtnRkRFbC8zeDZyaFdHOVNkM2sreWFmeFBqUnRwczFBd3hwNUw4Y01pankxakFlVEVHVlZONURwIiwyOTc4NjY6InNoYTM4NC0weVMvZ3ZsYjJuTkk5UnViRWJJYjVET1Z0S0JXTUJmZzRwNE1Ma0h4QXVGcnJsN3kwcFJTd2dVVDNaWitjenAxIiwyOTgzMjk6InNoYTM4NC1yQW5Wcnh3ajZoUE5aOWoxdWY4MGxGZmpUYUM0b3Jyb3lRVk1GQ003Zkx6TXp5eDhEbEEwZkNkWEx1eWkrMVliIiwzMDAxNzQ6InNoYTM4NC0rYzByTkZ1VDlSdC83dmw2NjM3UHVOSzQ2bWl0RkdGVDkyamJ3TjRMb255VGRaeGZ1bXJWZE9DVmFnbWMxeUNqIiwzMDA5ODc6InNoYTM4NC00NXlQTXNjQ1ZKRStJNlI0SzJPVTY4UWluSzBPVVB3VVdkUTFQUVNSUGVNdFhJQ3pNMFRscnU5akY1Y3FqKzZJIiwzMDIwMzU6InNoYTM4NC16TlUreUVnQ3Z6K0F6SFJ0azZlZktLK0dSREJlNlJmYytEK3RNak9OdVNpaHVJaEt0RHBlYnA2UU04RUpudmdSIiwzMDIxNjQ6InNoYTM4NC12bjJCSThkTXBVZ3Y2WlBwSHBHaHArTGpjL1cyblNPMS91MVU3OEloTjBVUFNudHNWS2lDUmRKYzR0ci9WSEk0IiwzMDQwMzQ6InNoYTM4NC00UzZqYnVmVWFkcjR3U0IxVXhmalVQS3RGL0JReE1yYWdzM1YxRkNleVFwcEk2SDVXeDJEUDl5QlpLVmpOWlJnIiwzMDQ2NDE6InNoYTM4NC00bFlRZjRYQ3huUDlERjhsdUhxZHNzWmloSGNXSitwdVNPVjRIanJGYzN3OTQ4TGV0V2ttZVd2NDBFQlo2RlFXIiwzMDkzNTc6InNoYTM4NC1LRmxwL1BKUVFJN1UyTlc2SkN1eEtqYjhKaHdheXJuT2F4MWYxS2tuL2xGMkpSR2paVjRXM0tCZSs1cVlyQWpMIiwzMDk1OTg6InNoYTM4NC1kSS9YcysxcWJDOVJlTE0rNEliNWw2d25nenZPU1VhSDdhakNHalB5ZFNKd0FBbGtOWEowaFNNeHBlV3ZMQkVoIiwzMTAzODI6InNoYTM4NC0zSWFwVUZMcVFHdmVOdGx5SFR5Sklxd2JSeklhdEJmYlA0QUREZi9ZYWlBRlpGb3llLzZXblZrOWYrNUJZRTgvIiwzMTA0MDI6InNoYTM4NC1mSEpZam96MVRZaFVUUXNQUStFNi9rbUg1aGQ5aTRUVTRNQUY5bUJhR0RwS1FuOWNDZzYwbXhMZXhrc1VnQjVNIiwzMTA5NDY6InNoYTM4NC1MRnJLbFNNODYwMEd4Ykh6cm81TEZpM0ROVFZsTDZtN2RFUmR0UjVjb0pLc3Q2V0xHTXQrVnRLQjN5bUtkYm5hIiwzMTE3NDE6InNoYTM4NC12b1FGcHlNeSsvSUkwM1hmZHZVUEh3VUEvUktZT0VQZnNFK1VpeGEwQ21xQWRDdkNROXNVSUkwQ1lqTWlDSjRPIiwzMTIxNzg6InNoYTM4NC03MTVubHAzOXVjRkhnTUlwdDFSOEU3T01YV3ZwajlKS05XSEdOY04xWWp6cndYOVN2VHVreEpKV0FtM2dPK3FwIiwzMTI3NDY6InNoYTM4NC02cUFPMHMwZlVRdlRGSUQ2L3plb0Vmekp1MjRhazJ6RXFVQjFQLzR5VTFZVkRkUDF2bHA0dndZQ0xxVzlUN3pvIiwzMTMwOTM6InNoYTM4NC1lUWtGREF3SEtjQ0EwRDV2bTlFV1Rnc1Aza0xzcGRZRlhyd3NZWnVzV1pPMGxsYWtkZHY3SlJUQkduUE9qaCtJIiwzMTM3NTI6InNoYTM4NC1tS1BHNEM4Uk9rTG4xZjBKVlF3MSt4dzBXck55cFVrdDNwbUVSLzM0K1gxLzNMR3VKMFV6eGFrLzF5R3NBUGRVIiwzMTQwMjU6InNoYTM4NC0yTEtUYXBEN2Y3K1hEdHhKZUJSSlBDM0FDUGo3NU9yMmJuVlpDWHkwWWFpbFdQK05kSmFsakFrQys1eElDQU5aIiwzMTQ0NTI6InNoYTM4NC1RNElLWFRSTlVlOEVaa3NaSnNZdTZqb2UwQmlheVNIektZTW1meGN0UlBnc25kUFo3ZjlBQUhsckdlUGJSekhTIiwzMTU5MjA6InNoYTM4NC1QZEdwanVHR25RbE1SS0EwSUlHRUlJcmgvMFFvNGJ2NEVudUZGa3J1SVZGNkRHeEk0QzB4L1ZXVzNoWjJyWmlDIiwzMTYzODI6InNoYTM4NC1jNWJTSEFrNTBlS1Yydk1vVllHQ290TFo3ZllHVTJHVlZOYlhTUEtwTVFJeVh1L2VrUndsd0taeHk2Tml4Q1ljIiwzMTY3Mzk6InNoYTM4NC1UUXVsQzR5cUQ1VE9uOE14ZE5RdW5kb0VacjdQQnlzMkUrbXhHNVVqOW1ES2pneExmTzQwbmltcXpFSVF2S3NNIiwzMTcyOTk6InNoYTM4NC1JeHdjdGZGdFhaT09iY0w0MDJVZGY4T2JtajluUFBibTZ1WFYzVS9QSDNSUzYzRC91NldKMFJDaHRNcURiTUdmIiwzMTc0ODI6InNoYTM4NC0yNXF3WWpDdWRNVjdKVVRCK2JPUlFaeDJkK0tMOVFWNE1MSy8walJvTzlha0k0MXgzMjgrR29aLzVYZko4bFRKIiwzMTc5Mzk6InNoYTM4NC1LbGQ0alhyWkJ6MW5qbEd1d1Y4amZJTlBaODJkZzF3M3Y3alpSTnpnUUd0UjBMekVPNnNOSnI3RGtUYUJPWDhWIiwzMTc5NzI6InNoYTM4NC0xamRTWFVlQXBibzJDbzdpSmgvWXlFeU55UmpQVDRsb0NhaW9yYTBuallZM2hXaGlVcEhjVVltSjBwTkFGMHByIiwzMTgxNTg6InNoYTM4NC16QlowZWdwM1EzdXV0WW9TVDJSZnFRYXVrUFlpbVVqdlI4eWcxdFdzZ3RDbHJaRHRtS3RxcDBwS2xBT3doRXI1IiwzMTk0MDA6InNoYTM4NC1rS2VrRWdiOEtxSG5OL3RmSDFwdEhIZEVhSk40Uk85dkx1NW1CNEtoZzJCNFA3WjNvdHlGdVpOa1BXMUdRTll6IiwzMjA1MjE6InNoYTM4NC01WkQ3V3pyV0tVTUJxY2hCQUhwU1Rza2xSTVo4djFLQTZhV1Q5OUhmWTNvOWlSZW15RytIY0tBU1V3Mk9tbVZGIiwzMjA1NTA6InNoYTM4NC1vZE1qQkpWb29OQjV3TXA1NzR3WXFjR1REZTlWM3dpcDdmS3JEdk1xdTRYYkRkdDNFSUQ2QmpIYUR3bW1mZXllIiwzMjA5MTk6InNoYTM4NC03Q0F6cmh6MkU3dUJnU1BJMkwvSGJJZFlITW13RGNBVWwvTU5HWTlKZldkeDZrUm93d1NXUjJ5YjdSSDFMZDFRIiwzMjE1NjI6InNoYTM4NC0zOGo4L0pDYmVSdkhCNXVVeE9PdXJ0aFlJbmMxdmhHeVZrUFcvZ3JQZiswL2ZVa3RncjlUdUUyTnA5UFRwK3YyIiwzMjIwNTE6InNoYTM4NC1XaDEvR205RWRxTENDeEQvT3R2SHM4UVlEVkQyWWRyMEdtbUZsOVlPMHlFU2pBYlF2L09WVjlRR2ZKM1lzbmdkIiwzMjMyMjY6InNoYTM4NC1YZ1pESTcxQjF1OTZZdW1nd1JOWmFUZU4xRkpZUnVoTDlJT2t0bVVtR2Z3NkN5N2ZCVUdPSDZzaFdrWXRydmFQIiwzMjM0MTI6InNoYTM4NC05Nnl3WmZxVThMak1iR01JekFrNTA5RkxXSFp5eVFHbW1hd3B3VVI1eFNCU1kzTlhUN0Fnb0VHb0FlNnpSWXVyIiwzMjQzNjU6InNoYTM4NC00T25UcE5ncU5mRkxIaEhyN3dYaDE0TGhzSzg1eVBtZmcvMTl5K3Q1TGoxY2kzR0NHbzNHQjQ2ZHEwejdiSmFiIiwzMjQ1ODg6InNoYTM4NC1ZMEpMMzNNYkNkVlQ4R2RtUzg0aUtSTlhhT21zOGkyNWJDck5yZlc2eHZrbEFpVzZya2Z1aS91RU05NWVVR284IiwzMjUzMjg6InNoYTM4NC0xK0FZMWduTFk0M3IvZkZVM3FrSzZGTzM2U2RKMDFpY0VPM21aQVI5cXJ3M2dST1ZvYi8yV2dVTjdhK1ZGT1dGIiwzMjY2MDA6InNoYTM4NC0zaHUxb1pXNU42djJIdWdSY2pJbzhyemEvQ2kwcXk1Sy9kUlBqQnc0OHpLUGdYTHkwRE9vaVF5S2xyamRwYldsIiwzMjcyNzI6InNoYTM4NC1WMDFIUTVqK3J2VCtSTVVVK3RZZk4xdks2Um1aK3BYSWgrNFpEa0xWK1hlVDlwMTNYb3B4UUQzTXgveXY3Q2RpIiwzMjgxMzM6InNoYTM4NC03V3NSMlJHVnJaYmlHRE1JaVJZa0I2QjV6ZXZLMHphNXZqVGNVaEtNckZZekxCVHVZNW9nazFhNHEyd213RTJBIiwzMjgyNzE6InNoYTM4NC1udFpUa1lYVkxZSHNKbkRuSVdXd3BGc0Rxb0pPekRVaEF1aThyaGlKVFZ1L3Zkd1NVRnZzb3ZCT1RzRlVVVUNjIiwzMjg0ODI6InNoYTM4NC1MNU5iTGk5SGtjZklCZ1BvNFcxakg0d2JVL1lyN29yTURSWnNJOTdGR1IyVFRnbDBBRU5XOUd1ZlFwOEZyVHpZIiwzMjg4MDc6InNoYTM4NC1UenQ2dlVEYktUbkN2Wndja0tYQjVKSnFiMlJtRXdKOE9HV3RjbmdyQ2RDbC9idk00ZS9EYWxxVm9UeER1OHY1IiwzMjkzNzI6InNoYTM4NC1Obmw3MEg5VTZCQzdxMWtGWW5XZkxzQnR1Ty9BK2ZnRm1UVWtOdnRKbEZtcEtrdTVmRUI5OFBiODk1NThydmFwIiwzMzA5NDU6InNoYTM4NC0reC9wWnlZVmIwQ0lLQmR2WXh4NTZKak56WXJoV1JxMm4wVWVlZ1FXN1NTaGhKUjYwODNoN3Nrb1l2dzF4SG5IIiwzMzEzMjA6InNoYTM4NC1UVFhBcXZveU5IcVdwcGJpaW5BWVVNWVFXOGJDTUFVYXRwT3BRVksyKytUQ1BGMUFreHl4QjJDcmNPQkE4QTVYIiwzMzQ4OTM6InNoYTM4NC14N2x2L3BFNGRLYUZwMzFTOXd5N2dRV3c5QzBMU3JmaVBvMlhGMHFGR1hkOEhpV2Zrd2FDV09VTGxkbkNUc2JlIiwzMzU5MjE6InNoYTM4NC1hbTVpWGQ1M1pRb3NIYmhCZEZuOWhKOWRSZEpOMWVVVzJWQ05xTTBWTjB3eTF3V2QvK3FvVkNLNk93MEorREFNIiwzMzc1NDU6InNoYTM4NC10VXBKOS83bS82QTh3bnpSbnpDS296MlF2Um9obUgzVmZGbHhYRlFKem41bzlGN081Mm96U21DaXc2WVdjYmh2IiwzMzc2NjQ6InNoYTM4NC1aWVB2ZHd4cWpCRTNyV3JXbTlidU9lMXpncDBlK3RiU08xeEFoR09kVU1waHVTUnRXcFlTMmZybjN1SWVDTm5MIiwzMzc5Njg6InNoYTM4NC1CS3ZDdENROGVXclhnaCtIN3BoVWkwSGFpNHpmNHp0L0NRWFh6aUt5eTJrZG1heFRBK0hDYlRKem41YkJYcTVKIiwzMzg2MzQ6InNoYTM4NC1GWTNxeU41SUVOSzFibkk0MnpRZnZVT1BrQm9YN1JSWWllSmM2NUNITFpPMUtqVEUvWGYyeEsvTWt3d3V4Uy80IiwzNDAxMzg6InNoYTM4NC1xNGlwRzhjeFhOSldSU3l1SkM4QmpTemNnYmcvSytvSTZRZkRBV3BRWG5qd2hqMTBhclJtSHo0TzJ4dktoVTdRIiwzNDA1NTE6InNoYTM4NC1JV3pTaE9rTmpVSjk2UHNYVC9uUzhONGt1YmJ3SDJodzU4SGlXTXM3WVJrdTVwVlBvYVZneUlHK1ZKTXI4SDkvIiwzNDA3OTg6InNoYTM4NC1ZTmlvTFg1UDVSa2pTY3dmSFZCQXJnVW1PUlRhdmpXR1J3SzJ0cWtnS29Zd1ZTWUpidFFlWG40UEZFZGxPUG5zIiwzNDE2MjU6InNoYTM4NC1TYzlIZm55Ri9scXVhS1l4MlFMZ1lhOUc3aVhWQkNMd1BFbE1DSXlIa2Znc2pxUGY4TjhNOGVFeWhzWnFncWIzIiwzNDIxMDY6InNoYTM4NC1NVUpjWUU0bmtBSnFheU9RTGtsSlpZdG9GWVM5RkFxUnkwbVg4ZFhXcGF6KzI0amZIMVVGNnBudm55U3Z5R1lGIiwzNDIyNTU6InNoYTM4NC1pa0NwbHc3d0dJWTVONVlSMTJ1YXRaL3MxTFFWRFZpT2pzRUROVzBJRHArNVd1d1R6akd3cFhVdG1GV2hPU0JoIiwzNDMyMzM6InNoYTM4NC1CS0hIckpMMlREcW9YTDRtZU1LYnVtRTNwY2t3NDczWitrSDZxK2taODVnMmNVMzBJUGJ5S0FDeVplN2NaNzRlIiwzNDM1OTI6InNoYTM4NC13dis5dUEvVTlaK0M5YnRSRkxadERyZ2pkUWZpKzJqODdRSXZVNytKeDBQcHMrTFdVeDBRRnNqTmxraVdyTG0wIiwzNDM4NTA6InNoYTM4NC1qQUZIUjVadUhiK0N6V1dMT3EyQWxXRmhNR3llZy9VanBkaXBkZjF3ekF3YnNJbmsrNStzT2FwNFBNRFNyejFEIiwzNDQ3NjM6InNoYTM4NC05aHppaHNkRDhBY29CcWFNa0Fzb01zRmVxcEFWS0htWE82dWxtbCt6Q01zYjRiZkZ2bTgyWVlFYjZvMUU3N01rIiwzNDYxNzQ6InNoYTM4NC1SUUNUNGx4VmN6NzN2ckV3M0t3TzZ1Z0I1amFVc3lDMjdlWXJkbUNaYmxoZVphTys0TXdJL2FMc1lKSDYyY0JYIiwzNDYzNTM6InNoYTM4NC1TaWJOVVBud2NBWnZkeXNTcHkxUzQ2bWNJMEJXcHlZZWZFY3B3SUM0MG9WYmh5Y0dBSWM2cGJFWXQ1UFI5YXJPIiwzNDc2Njg6InNoYTM4NC1ldHFoU3VGanNmZy85QzZJa0hEVnpYVVFwYVlnQmFxbkxpWDFwTExiVFAyVTZXQVgrbkROVldtRER5bzIySXM1IiwzNDgxMzk6InNoYTM4NC1FQ1hKR01VZVVSelRRL01JcC9GRmFaMk5XenR5ejZianVORkZlUlUwb3l4OFkzZ3BwYmtjVUd5TlV5V1R1eHhqIiwzNDk2OTE6InNoYTM4NC1ST3F0c3ZMcTZrdVdiY2tCQkVIckttVGxZYndqTDZEVDZHNzc2Y1VGdFpnR1IvZFYwVEs5cWRvMEtRVXNIQUR1IiwzNTE2Nzg6InNoYTM4NC0rV011NFZTeDJFcVZpWWIrVzM0aFJSMVlsN1RZekZVUDRZM0JodVZlUDBhZml1VmZGd04xZ0R0MDNVSkRDM0MwIiwzNTE4ODA6InNoYTM4NC1WbVNjaTMvMGxYWkRQWGNkOE5jbE16RVljcWZxSXpHYitrRVZvNU54S3lER1FDR29MYkFKZmI0OHU2SldMR0pPIiwzNTI1MzY6InNoYTM4NC14MDhqR1drQVZXSEVNY3lKNGNkTU1NUllDalB4RWJFaUFWS3hkWGxyUE4wOW1XbjVPQXRMd2VvaUNYK2NUOCt2IiwzNTUyNzg6InNoYTM4NC1RdzBwOFU5amgrWUdUQ09LYXFweHcyYWNDSkZzQStGYkJGY0pvRGttdjI0b3puQlVjS2wwNHkwVXN5ZjlFemxkIiwzNTY3NDE6InNoYTM4NC1hT2NyV3A3V0s3ZXFNdnk4SlRnSDFEZ3pCVzBSRXJCa3NDOGVrR3gvcmZ3UXhvVGJsVklBeWNBN291YS9sTks3IiwzNTc2ODM6InNoYTM4NC11RWhtVktJRHg1UXQ2Mk5RV0xYYUxmTmFFOUtTZnMvN3NIVEthQmY2alhKOUl2NWlNWThCMFN0S3JEMUZWdENSIiwzNTc3MTI6InNoYTM4NC1hMEJjRi8yNVBzdzBhNE5iaklOSmRLZTBHY1dxUFlqVGI5eEU5SVFyTXZ2U2hPYlAvOXpqU1NRL2g3RG1sdGJsIiwzNTk4NzA6InNoYTM4NC1pUDVDL210MXNaTGxPc2QxK0pqSUNoREE5VExTYzdPcW5hQjF5Sk8wSEEwL21NZmlKLzJ2ZDRuMW1pZ3FvWGhFIiwzNTk5MzU6InNoYTM4NC11QWtHSTVtN0IweE1ZdFozaUZXZGZDNFc1U3ZXd2FOSng2TkU0TGtWcVJPMTNPeEY0RU9zbXMrbnRrcTNPeUZtIiwzNjEwODY6InNoYTM4NC03SzF0SUU4RlN6elhXUldSOEtKUG1vSWRDY0lQamN4NjFlRktVVjFYRmdpM0lJSHhaaFRZK0thTHV2TGlwbWYrIiwzNjExMDM6InNoYTM4NC1oWGlXRkd5NzlPajdHNldoTUt3MUpnSWxjdlQzdWpUQjRRVDhpOFZHODJTL2hlTWdyL05tekNmb2xLK0ZPaStHIiwzNjE5MzY6InNoYTM4NC1yVGxpNnVHcklGSVRYNFVyTU5vY0xEK1pFYk52UVA0ZnQySno4bjFtYXpEaVpCNkZKNWJIU2VMVUJpeFVmdCt4IiwzNjIxMjI6InNoYTM4NC1adnV5OVFZNkFZU2dwVS9rWVI1M2tVRUZrZlJ5RUtWd3dRT0F3dHVCZ1B4SkZzWWV6V3gwajZEZlhGWVN3dTA5IiwzNjM1MzE6InNoYTM4NC1TOXA3czJzTHhnNzhLRjFuMm00ZGlqTTlocFJacHQ0RVlsSGptMmc5VllaVGxBTnU5TEdzVmxTSDczaHY4REhRIiwzNjM4MDY6InNoYTM4NC0vNFJ2S2hoRGtWUWkzOXJNL0dLdkRBL3I2SmdyVnUrdmQvekhrVnU5UERxay9kdFJpOFVZTlRTSS9HeUUxbDdoIiwzNjU4NDQ6InNoYTM4NC1XKzZTNUU0VWtlSlFyUy9iT0lRMFNDSVJQSk1kR2kwaFNDVHg0OFdselJHRVVDbERtZlFVVGNKUHlzbmQvQTByIiwzNjcwNDY6InNoYTM4NC1qZDZRdWJSdnoveHVrd2NlWDRHOXE0K0ZmTzVRNS9GMk5CR3N3cVZtRGFqTlBHTm1wUi9aYVJaSVA3Wi83SkdoIiwzNjk5NjI6InNoYTM4NC1nOVBDYnRwWjBhM1plNXN3Q2IzUEJZQVdGWE5tc1d6Qk00T09sa1pCOFNpUTlTbXpDVHZJek01dTdBZkU4ZHlOIiwzNzA0MzA6InNoYTM4NC1CN0JkTjhHOXFMck5VM0ppTC9HSEgxN29MY09NTHB5OG9oZUx6Q3JZUGFmczRiKzZMZTUvVFJXS3N3eWgrWVRLIiwzNzA2MDU6InNoYTM4NC1VOXdSUlU0cktVNTc5Vkp6cjRtRzZZZzVQQ2dBV09YRlRkdDV1SzV1eXhzTXgvOFpPWEpsTVBDcFovcmFOZFV0IiwzNzE3OTU6InNoYTM4NC1MNUZ3TTJjYjZ5aGFBMncvOGhoazNKUnlrbkZtUjZwY01NVGliWkFMTWpqanQ2RnRtL2dtemkwYnVTUzVWSDhDIiwzNzIyNTA6InNoYTM4NC0xcmFoVm03S2dJV2FNYTVHYUtlNHJxelNudWVjeDIxcVJvcjZHZlRVVjFZWFp2YkFKVGZzSDhoZktGVldJNlFKIiwzNzIyODU6InNoYTM4NC02amI4dnBENlI4eEVwbXdKQUtBOUxldWpqbU1wc0drUWkrK1Q1S3RGL251UGs4ZGNHTENwSnVJU2JEVEM2L25jIiwzNzI2ODA6InNoYTM4NC12SUVzUS81VXV2ZTNpclpRWVM1ZW5qSys4OC8reFVyd3JIS21VM01NbjF5ZGNBSmpwaCtha0tqVW9hL2RDTkZVIiwzNzM4MDc6InNoYTM4NC0xZTRjUkZuOUVBSWo1ZWlOMml4RVFDVGE2bk5CQ0tya2hmME5vT0pzeFIwbVFFSEdvQ0liUHg4V1BkbDRIZW5mIiwzNzQzOTI6InNoYTM4NC1BdG9BbFBBWkxHUHlZOEJPWDJWQWprb0J6SVR2c21OQmRjWnBhbmhROEE2RXVUSXhsMzg1MWtvTHhvdEk5RFBoIiwzNzQ5MDc6InNoYTM4NC1HeHI4R25qMEV5UE1YQWJqVkN3QXYwQThZNnNYVDB5Z05uM2JjSmJ3Kys3YThxWGxzYk45RXFTZGNwV2FFY25kIiwzNzU2MDI6InNoYTM4NC01NW9TY3d3UFl2UFIwWFAxb2NKSm1FaUtMeTd6aHh3UkRzdjdGSVl1czc4NGYyK1Q4TnlWSy9YN0JBK3FmeVBPIiwzNzU2NTg6InNoYTM4NC1vcGVzUGx6Wmk0Ulh6Yzk0djA4dG1TdU5vNmMvWksyYlpzWWZkTGxZV0d4NzdmbmR2VkFCM0ZrUUVDbFR2ZFNWIiwzNzU5MzE6InNoYTM4NC00akp0dGV3OFJNbVFBZmt2anczeE12L2tpYUwrWmdlNFBVQlM4V282ejNUczkrQmM3VDhpN3hjWXcrUHJNSmRnIiwzNzc2MTU6InNoYTM4NC1iRDgrSnl4SXBWa3pGcVVsUTEzbVJSWGVTK0xyWi9LRGZFWE5CMzJMbWpRT0xoNVhGbnlHVkJJSW9Jc0ZoMEFoIiwzNzc2ODI6InNoYTM4NC1Jd0FrSkxGblM5L2xCUnA0U2Z2UENWWUQveXhMTnBINzBlM1ozZUpBaUFuMit2WGtIMTJvcmRWV01jdzFQeWdYIiwzNzg3NzI6InNoYTM4NC1CZUhPT010U3RVTGFrYmFUa2xHYUV3SnR0UStiSDFBeGlzZTAvclR2WStHSHFZTDZjZVcvY2tNRk16cXRESEhGIiwzODA5MDY6InNoYTM4NC16S3hXMVRSeWkvYlc2UnlqUmpQRitHNncvNjZYUUdMeG9JS1JWTkZNbjhQMDk1L1Z0MU9iZTluaVloWG1SVXhlIiwzODEwMzk6InNoYTM4NC1xbGVPdWo2d3BzQ1ZJdnE1d0xIMEtXMFA2aDkzMFdNb1RveXE1aFdaR1haNTJVUTN4bEFzNjVxZ01vcFZkbGZwIiwzODExMzc6InNoYTM4NC1XUUdJZXRNcFJmSkJ0bWdKb1JMQTNpLyt0N0xKWURhV3Q2YkpBRU44MW1Pa1hJakZWZG1rSUFETjZyRGFmOHZTIiwzODIyNTg6InNoYTM4NC15T1A3SkxHV2c1QUxkUlVQbnlDeS85Z2RiTlRLcytZWEZOL0d5cTBrZ1MzYXNpaGZ2dld3dkV4azlQU1l3MmZIIiwzODI2MzA6InNoYTM4NC1xc3I0UEZ6RVRtVmtNRkRwcnMyZEt3VHdxWTdhck1Kd0tZZmp3eERzVUpnV0k3NURmT3Q5UmliUk9XQXFSWUxNIiwzODMwNTE6InNoYTM4NC12SzllNUdkZ3FwSzdOeTBrZ1pPc2Y5elptUU5qcFVKRjFhUUhDeHNnSVZyQXdUemQ4V1huRENPenM5YWZySGEwIiwzODM1MzU6InNoYTM4NC1RNUxOaWJqSVMrYjZxcWhQNDY3M2YwVTlHWDU5R3k1anAvcklZakZERkx2c2MxUHJlRmE0Q2E5Z3R0OEZRVTROIiwzODM1ODc6InNoYTM4NC1yL1hORjZ3RGdCYnNzMnBRQktmMzZ6YUZWbkdUWS9MMnYzSEh0Uy8zbW52bEJ4VGUzU0JQajdSYTRmRDNaNmhTIiwzODU1NTE6InNoYTM4NC1jMnRSbjhFVVN0aE9pZlR3bXZkUUVaRWFHYXdEVlFPTjBPZ01NOFU2di9kYmRKU3JVc2FJNjNNMlN6V1FjUFk0IiwzODcxNjY6InNoYTM4NC12TnRSTUlSM2VGa01uc0NhN1ZZRDFHS2FZa2pLME1ZUUZSdk1zajErYXlhd2lUZkxja3hwaVUvR2VwSDloNUN6IiwzODc2NTM6InNoYTM4NC15S2RXZU45MkhwN2VsMG44M3dndmQ5V04yWTlqd2FaVTlQNkcwNEdlVTl4dlVMMDlsTVNkZDFnSlZzdUxQcTdVIiwzODgwNzk6InNoYTM4NC04NVFNZXMyVk1yRVFqb0pzenlJSEJaRTRnNkhKNm9aaDU1Y1BhUXRhallodzN6ZktaUTFKQnYyWlYzTWQxdnBDIiwzODgxMzQ6InNoYTM4NC1XYUMyTTdsSzhncElKT3VaWWlUVE5BbVlQOEhvck50bk9XY2FTbjI0R1Q0M1V1T0wweldhdWtTZ2RXRTd2aGtVIiwzODg5MTQ6InNoYTM4NC1QL1FISmRqYXdZMHpPUHJ1OGxBU0JaWi9JK2NCamV4R3VGcmVwWVVmRGZHTnU3Vk1ldndtaEw4U3duNXFiZFlhIiwzODk4NTA6InNoYTM4NC1BRXNQSDQrS1R2RmJObjlHdUNBVUN4WHVxY1FpVnJpSFk4Q0JpdFhVcmQ0ZW16RlJwSVF2dEU1TUJoWXU1OWcxIiwzOTAyNjk6InNoYTM4NC12OENGU3A4aUJhaUUxeU1DT1pCTW14cWQ0bEh2WjBmNlFSb0N6a0ZWSFZxZW9SQ1JXR2NCci9CQW9KeC90Q04vIiwzOTA2MDI6InNoYTM4NC1xWEs3QURrQjlpV0taRDRvYUJ2UHp6VjF5NjlLeUsxZmdKa1FDdXVYZ3JtQ2dJRkdnNU00SS8zVGVWWW1UdWYwIiwzOTExODA6InNoYTM4NC1EUmVQMXgwekloK0NSRGVSNkxIOEtJMkExV0ZwWmtQNXZZVGh6NzNoQXQrc2lKT3E4SWZCYUVLamNuSGR6VnQrIiwzOTEzMDY6InNoYTM4NC1kNXlvRmdmd1pPZWNuNmRoQzhZQ3Z2Rm1MdXRFVHBNT09kbkluWGd6SWpEdmtDWHpIZ3VJc0xGY0Z6VzJLQzhQIiwzOTQxODM6InNoYTM4NC1VRHpiTnczdTZUb0dpN21yUTIxRlhoeDYwaVFjVUpvT2tYTEZ0VTFqN1FQeWM2V2VVWndBSVc1clg5NTRTVk9oIiwzOTQ1NzQ6InNoYTM4NC1WeW45TWpkKzczV2lWb2VMd0grbU9sdVVheEFnSXVDT0ROZDY3ZkY3Wk1EeXZXZlo0aDRYSmlONGpLNFJpN0NXIiwzOTQ4NTg6InNoYTM4NC1NeG5sN0lRRW43VTZyak12OTgzV0pscnphNnYxc21zTXJRYjJsQUhnOUxVeHRubGxydnBzeERxSm9hS2hSRk4zIiwzOTU2MjY6InNoYTM4NC1BTDVDRHc5RnJSOUNYcFprc0FydittTkZSNmRRYnBraGVFUU95dXVuMEoxQ1JWM011TnEvNjhqaFdTTXRkQ2dEIiwzOTgwNjY6InNoYTM4NC1sMUhDc0YyTUpxSGtibGpTQ2JtOWkvdEpqWjJLdC9jL1krUHIycWhtd1dwSzFJZUtZeXV1WVpqVE42MGVESHFTIiwzOTk0NDM6InNoYTM4NC1DbWNJdUhEZDFjRmQ2RnZzZm9Kc2hUaVM2YVVLYVlaWlNZMDVRdGY2TXI4ZzRBR2VMMXE5NSttejRaWHhucVpiIiwzOTk0NTg6InNoYTM4NC10UHFlWkhQS2hSMWdFY0NKY1YyM0dOcXJwVkdJNlBKSnZQR25DbitWQUtDcTdidDFCaUdRdXJJWGZPTGQ2RUZ6Iiw0MDA0ODE6InNoYTM4NC1UVWxNMUVqVVB3VU9OTzRpeEU0WktKTXMxZklEeXY4V0M1MTcvenNYQ1p2T1plYWhIWFpuMUsyRm56Y29YdHFNIiw0MDA4NjI6InNoYTM4NC1sY29rbThXZUw5MW1hdnNxbGF3ZkdKWU4xczZSajlidEpXMmZtbUlrdjQwc1FqYzVTUzBobWhjNkNtRnYxb1JhIiw0MDEyNjU6InNoYTM4NC1BaEFQR1BBT0dCYWtVOEJwMFVmUi9hRlQyeHNoWkNzZWt6a05SZGp4SFl0WTNST1Fybzh5cUFmTmJvenkrTnhPIiw0MDU3MjU6InNoYTM4NC1SVGJucjlsVlFoaVd3djloMlNXZDQ3d21uZlZnNmJlSmpCdi95bXR5Rk1EdStwSThIaDBQa0FwZFBCL2xFS1JkIiw0MDc0NzE6InNoYTM4NC1ibExZdkV5ZUplaVZKNVZPdzhxWjBDY1pKZnpTckpHNTNQOS81bVdGcjFRVUU4cExZUThDSzl0NGlzSzBnUDhWIiw0MDgwNjg6InNoYTM4NC1wSW5tbDFjU1R1SFZNczhmM0k4Z3N5VXdIVnpxNE96UWNvRFZVRXArdFRQaW51MjkxbDBDU1Ayak9KaXYxTllVIiw0MDk1NDc6InNoYTM4NC1laWFSUUNKRGhxMFJFZ3E2OTZOYkFaendQR2dEQTlXQmt6ZDdoQksvemRnVW9MaVBUN0I4SzNhZTN6VjdJMlhyIiw0MTAzOTI6InNoYTM4NC1QQTkyMWdWNzc4UE9RSkd1TFZ3RzNBR1pIeVFCUnp4eHRSZ2VjZU1KSUhxSU5aV2dYRTJ2NFNZcjUzdXkyeC85Iiw0MTA0Njk6InNoYTM4NC12L3hQNlcvOXlUM2RzS1FYWnVCT2kzWVhiY0dRdVdPOUxBL0hZaXpKUExscGJtcjhQVkE5TFJnZUtvK0FINHBIIiw0MTA3MzE6InNoYTM4NC1KaDF5NlRLYmtFazJNcitHS2RVcFhEWUVFN1dsa1RyZTFlWHFjeW9xSVJaeEptYk5KRG9TT2NUd0xtc2lVSHdRIiw0MTEzMDg6InNoYTM4NC1nL2VzYm5zYXBHL1VIcUNtZjYvNm1YV21EeUN1ZTliK0tyWjRkS1RRM3lYZ09Jd1dWdS9ZMm1VZnFvbmtkU1hZIiw0MTIwODc6InNoYTM4NC1CR0tGRXR2cCs4QktNcTFWY2JHMVVNMjBTbG01S0VBRjFJN2FheHo2U1hKOXduMXdDdkJNdEw3UksvUjQ0enhSIiw0MTI1NzU6InNoYTM4NC1OWGNBaUtQRHJLZ0h0U3RKOHBOVjBrRlVzNkFGY1gxNjJJQkNzaTh0Y2luTFMwZVJuYUZ5cUxrR3dHN1JONDgrIiw0MTI5ODg6InNoYTM4NC1wOUkxaG8xalRjaG15bEZxeEcvSEl2Wm16MFIzeTMrYzlCWHlkd2FPMkVRY2szcU53a052aFU4V3pGNElJaFVKIiw0MTQyODQ6InNoYTM4NC1iTHptMWlzY0V3K1A1aUdXUkExY1ExWTllR2NZUFVQOEtPYk1GT21yT1kyZ1RLMFptb3pxT0tQbEVMaGc5SHRtIiw0MTY2MjE6InNoYTM4NC0vdlYzZDh0UDd5MFlDZlZPQjJGekM3MlB4N0R3QWU5ZXZETldEN3hMa2hIZmI3ZU9jTS8yT1lIZllHczRUUmZyIiw0MjAwNzA6InNoYTM4NC1HQ3FTbXJRQmZTT0lpaDdRS0JhVGhDVmpoQVNKRnlWZXFteEl0czZJb3RRN1U0d0doRU5TSTU4bjh0Z1RtUnVUIiw0MjAxMDg6InNoYTM4NC1wdElZazFzQ0E2Y1U2VzUrQTFYTGJtb0NPWGZ4R09WbnAzeXdqeHhCN1h0MFBOMTgrYnp3UGhRc0gwQkZFeHNlIiw0MjA0NTg6InNoYTM4NC0yeWYrWGJjaktSeG9Rdkt2dzk1QXZVaFRLSlhHL0R6TzhSNmtGU0ltZ3FvZE5ySlRYa2NPeC9nbjE2SkFCdFNrIiw0MjEyMTQ6InNoYTM4NC1nMXBpaTJQcUVSVnE4Mk9nN2F2YzYxNnd1NWtRcmpETFEzVW9STVk4RnFiVEN5eFl5M25sNi9LeUVPMFZxU0Q5Iiw0MjE1Nzc6InNoYTM4NC1NMitFRitxV0Q3QXlINTdUd1dmR0NjWUQwSm9vdTVMQU9JdDkxSHVKQUU4MzRDL21zb3RHWnkxRWxKUHk4UVFqIiw0MjMxNTg6InNoYTM4NC03ZUVaSUZlN0pZRGZJMmsybWpSU0hxMFErbHFEM3gydXdOdXhIakxOM2xqVjJ4TlBCOHNjUURIRWdpbmZsR3dwIiw0MjMzNjU6InNoYTM4NC1wUDcvdHpqOGs1cmNVand4YXR1Q3BvZDc4NFdETWwrb2dKaExEVENUSzk1ZVhlc2NIUDQxMzRDV0xKYnYyekJTIiw0MjQzNTk6InNoYTM4NC01T01qdTJRcDJCNDVpeHMybmRaMGljRTV4a2h3Mi9WaHA0K0ZTY1Z3cmFJZ1VxM1hoUUMzVzRxMVpjZ3lOMDRwIiw0MjQ1MDI6InNoYTM4NC14clpsREhpcXZ0OEFqV2lLSEcwbnRPajlzVVM4WDREWG9kZUV3dHJaTTFsYlczekFqM3JOeGJWWVoxc3NXQUFKIiw0MjQ3NDE6InNoYTM4NC0yQWFvWFRxVjExUWx1L2FYTGhpUlFtQlBzd1FxcktTZ1I2dG5SVGIrYVF6ZjNFbW1OWHRHejlTbmlqRVNGc21UIiw0MjQ5NDI6InNoYTM4NC1jaFRMenlsM0tNN05uSGVIdnhWQ09DaGlsSXU5TTBMaDMyMStRZ0NIQVBFU0tFNkw5c2lUNEFDL3hNZE9ZczhQIiw0MjYxMjQ6InNoYTM4NC1Ia2Y4QjhXaG5MSTlSZDhQZ25OdnQ0VWhjT1BFQTUrckYvVHBXK29SNEpkSkpqYWoxVkYxL2NsRFZZTVZDQm05Iiw0Mjc5MjU6InNoYTM4NC1LY3Evd09tdGYvc2xpelA0dDBjTk1PV3Y5SG15b01SMXU0aEV6V3hXZ2NhK1JHeW9ROVpIYlNOWmZTeWJPWUUrIiw0MjkyNDY6InNoYTM4NC0xcmtjMlUweHo3WFBKZ052U0ROYklTRFpEZ0k1b3VxZXVlYk5DZVRNVFNHSXVUZzF3VmtodGpENnJhQ0UrZjFmIiw0Mjk3OTc6InNoYTM4NC1IV3ZsTDRVMUZONGswc3hKcGtBZjhhM2R6Nk8yay9KRGp4c2lmWUZKNHMzNzdIOEhGSUROL0ZBaGQxaGJZQW9WIiw0MzEzODU6InNoYTM4NC1vcFRQTkJJcXE1Wkk5bW1IUkVwN2Z4QnEwdUlaTW1IdmxnR1JEMHYxdTA2My9pMng1d2M3eHVNSU1yYzRadnRHIiw0MzE4MjI6InNoYTM4NC1wT08wQlZvZlU2dzJLUjErMWovLzFXeEpESzAwOW9BRVdDNkNibHJXR3RGV2Q5azFRMjA1M2ZFQ1ZFREFVNUlxIiw0MzM0NTc6InNoYTM4NC0ybVp1YmVXcGN1MkRFRmxjNGNGZkVKMS9VKzRQMTE0bUpLYVY3SzBIUHE3QlNaMm9YajNYNmtkanpJQlRMK2R3Iiw0MzQ1NDQ6InNoYTM4NC1ETDhlVmVOaVdXM2hIWkw3QjFNdE9pVlhDRm5aU1VTM1d2RHgvcDcxVDBhRzZzbnZ4VmxWM1pFbEdZNWkwYi9TIiw0MzQ5MDI6InNoYTM4NC1LWE0zTi80eTlPVGZSRVpjTHlwakhkNzJvSzJHS3QySlc3RGNiR0NBQWFrdU90Z1o5KzhFd2c2dlordVMwZFlKIiw0MzY4NTY6InNoYTM4NC1scVNOek9yRE0reEZRNzNnVDBiT2xabjNwTStsbGtpQldUbW5DcE9sK0xNTERVa2lhZ2hwNHR5eUJUY1M5NW9VIiw0MzcyMTQ6InNoYTM4NC1ueVEyWTNsZHUrVnJSbTZJWFVPWUdkMGZaVUdCRGhLbGVDaDVlaFExVmJNamlnREYxQklqQUZXbWI3MkhKS2pTIiw0Mzc3MTY6InNoYTM4NC0wL3JkVWVyczFMaVk0NVo1bkR6MU9BWkp2Y2U0KzhIUHRxczVVTkVGN3ZVZ1h3R3VqMjFqcWRCT25JVmFYdzdrIiw0Mzc4NTM6InNoYTM4NC1MaUhkdjdCN052MXZtY2VpZG40RjBmSzRKc2oraHdjQi9mMWliald3RjgxVzB0WVhqQUM4c2NqMVdqN1VUaUlKIiw0MzkwMTM6InNoYTM4NC05WWxJYUZ0bldCSjVSV0Y3dVZXQWU5YkpNdXZDNlJvelNZbmExQ0dxdFpOdDcyemJNZnhJSm5wZVhNbHRwaVFmIiw0MzkwMTg6InNoYTM4NC11ekpUK3ZDWG1YN3hrK29qTzYrcjFibHAyalorc1gxUUNCYVRrTXdkbzJhR2dDdkhwMnhsSlg3bnpmYi9DdUR1Iiw0Mzk5MDA6InNoYTM4NC14Y0hUZENLT1pTbTZON1lNTlBNYlNYM3ZidlF3a2VCYi9pNGx3WXNzOFdOMFhGVms5SllKQTlwa1FydlA4REhSIiw0NDA2OTM6InNoYTM4NC1pVlZuQ3V0SFZCN0hKQ3VpdVRSRWI1QzVPWEJMYkZTR1RvV3E1NTMrRUtiaHh5dEtCenlyZmQvcDRYMTFvTjdmIiw0NDA4NzE6InNoYTM4NC1keVVEVmZzRkpZNm51a2duTjRQeVl0WGFDVENaSGxPZmNRaHZiaUo4My80VTlHWkQvb1F3NEsvdzY4Tm9ZLy9YIiw0NDIxMjc6InNoYTM4NC1kWnpQWlRQaUtBUURZQmlRWTJtaVczekFidjh4c3hSOU9mTXlvQzgwa09UT0xTVVVZb1pUYjNaUnpnSThNS3pHIiw0NDI0MTY6InNoYTM4NC01MXFxSnAzSEwvWElqT0dhUlFpbURndTA1RnNHb3FMRjBkRFBhenZIaGtTM2ZkYWtEUHl4T1dZNDFIU2Rzb2dIIiw0NDM2OTc6InNoYTM4NC1XeDVubGFlK0F6VVNWWE5haVJHbUdlc0t4YmJVM2lxNTZiR0ZNNnhCT1dxN3didzExOERTSjJvSFpnaHU2RWpSIiw0NDUyODA6InNoYTM4NC1Rd253YTNEVW04VFpRREVJVGFkQUhjRW5VZEFZVkZjRURFNTFCRk8yb2krNjNxWGUxdE84dHhBL3I4K050THhpIiw0NDU4MzY6InNoYTM4NC1jcHRFc1ZKQXhMeWVUVEpTU1RUUlV1bVRITUg1Y2d6bHorQ3NWT3JSbWpsVkVLNHZlb3B3QmMzZGlEVzEzZ2VpIiw0NDY4NTc6InNoYTM4NC10TDQ5MXFobTVTb2JMbDhtNlFrQWc2U2lFS2w5Qk1BU3MvcXlNM0hIOTFRT25sRWZHV1ZudW8yK3VTV0FCREZ5Iiw0NDg5NjM6InNoYTM4NC1rWm5QU0RHNGxGdTR4bnZzakVsS2NoYkZ3RWY3Y1hzZnI4OXJMYlc5WVJEdGlmM2Z0RUtnVUVPZ2F2cVlmeXBpIiw0NDkxMTU6InNoYTM4NC0rK3Zac2tqdVJlekp4aEVMdVkxMXE3UjN0d0lTb0JUQWZxdGMyL1Vmbi9Ldk4rWG5EWG1ZRFRYek9kbmMrYXBOIiw0NDkxNTg6InNoYTM4NC1mQUVHenhtNWtGZHVka3FnUGZlQ2hnWXlVeW1BL2VNMnpkRGVJd0NIV0RST2RFMnkwSGlPdVpnNk9UdVJIUk5QIiw0NDk1ODk6InNoYTM4NC1rWHcvUC9RL09vSGl0S3RCaytvQ1ZGZnFpbk5MRVNwS2pDd0pRMXpxeGlEVHA2T3hLS3FlVS95amtVWGpqU3Y0Iiw0NTAyOTE6InNoYTM4NC1NOHowK0RwMzRZT2RWVlYvTzNQaDd2R09qS2dFTnBxWmpBaFZVUTNyV0htY0xRNVBYbFJ6M3JGYVdaMFk3ZWUzIiw0NTA4NjA6InNoYTM4NC01SVlsMmJJUkR6WE5xMThMNHZkUTVvTVM2MW1TM2F4aUIxSzhLMGpWd3hhNnpDK01oSng0bnFZeGFaUUVQSHRvIiw0NTExNTY6InNoYTM4NC1GVC9lRTZuMUNtM2QrWldudkdpdVdybWwvOEoxbFhlMWd5cWhZWkxJRVhxT3cxaXVlMEdoNTE1NStUamkxMnpRIiw0NTI3NzI6InNoYTM4NC05VmM3bEY4M2pyUGpzZTB3WHU1WlhJNmFFRThtMEVkMzBSYVY0a0h4QW5iYTFpWnZDMmFPK1lTbnN6TkphRDZhIiw0NTI4MTY6InNoYTM4NC1hNUdSdWd4TzlVN3hkOTBkak41Z2NER0ZkWEtGa25mWFBEcHZhQnQwSUlHVm9nL1M5ZGVJeTk1TVdmYUJuejFJIiw0NTM0MTI6InNoYTM4NC0zTE5PMGFPMk9tNFBWcXROUEdETXk0VmpnM3Z1MmlVK08xeVhoNDhZRGd0djllTWRuQUI1dWdjbnhKLzEzb0ZVIiw0NTU4NTA6InNoYTM4NC11SDhOaWhzU0p5bHhjY0R6U0tSNldSSnBObjN5S2h3RjNKS09DZGwySEVySjRGaHZQQ1NuRGFFVzdvWmc3NEl4Iiw0NTcwNzY6InNoYTM4NC1hZ3JaOHBJZkV4aHc1YWtBeDFCdDVleVpQWkErWGZkblZzNTVxOWxJQzUwS3RNbnVrTmRmU05uaWRDN0tGU3dZIiw0NTc0MDQ6InNoYTM4NC1pMmRRSWMvZHFxWUNFSzJLVkVHaml0QUZTelIraEVyWUdKZ2RRem5lQlZPN21seEQ3bDlPQklGT2s2NGtaUDlHIiw0NTgxMDY6InNoYTM4NC1uRzV0dSthRld6QU01L2RrYXkvNEgvekRJZkdRNzF6cjF5WEtkWEVud2laenZVRmhrMnFtQitBL1BpUTB3cUZ4Iiw0NTgxMTk6InNoYTM4NC1Md1dmcDVwbUhHY3ZGUitwMSttYUZmQjVGUldJVGplcUIrbjJneVpRenNLTE4zU2JGY2IyV3dCajNMekFvNmZ5Iiw0NTk3Nzk6InNoYTM4NC1WZ1dqV3lUZXc2Vk1xZFJqTVZhTlhzUS9YTVJaUkgxUFZSMmJzT1VPaG5yYjNreUVMaTJPeUxCM2ZDQmlpTkJHIiw0NjAwNjc6InNoYTM4NC1VNzNiSDRWRWF5aERvSUxSVUtmaytiRlpldFE4N1MzKzhWTTc3dFd3b3RqK3hYZUk4bHBRRVIyWGsrSHlnKy9nIiw0NjA1MjY6InNoYTM4NC1DSjlKa2tWWHA3RUpKckJpcVhSK2hRWVFyZ0FtWTZSdTBJQmxqTE04Sy9iNUJ6Wk0vSkVmVy9EWThYcGdYa0o3Iiw0NjEzMzk6InNoYTM4NC1RMHZEajYrbEVHZVdHUllsd2pMcGdwb1djUElXaTd5UnpyeStwSHhQeWZDVVBZZCtFejdPNDlBUUp1K3hzVUtrIiw0NjE4MzU6InNoYTM4NC02LzRRNkVBWFBhOWxDa3ZDaExRRVJnazdVZjJwM2dnelRsUzZ5Mit0cEtGcjNJcEMxdzJGdFB4RDFsK0ZESS8rIiw0NjE5MzI6InNoYTM4NC0yVWxSenVRdnNJU1BNcW80cGIvVGFPQUc4SnJkWERoM2J2bHBiemhOcGd5WDViTGpJQ1g0bEd3azVpWHZBQVRRIiw0NjI0NzQ6InNoYTM4NC1rbXpNRGMrYzViV2ZEN0xWMGU2UkxsNEg2S1NYY2QvMWFlRGJDVUgvOXVWdENuMEpwVm5ualpEVy9HUzRWWm5SIiw0NjI3MjI6InNoYTM4NC14UjNNMEN1NCtIOTdsMHEwNThXYk1mbmZxQzFRNkUxQnlHZ1FCOWRkVmF3OEtwb1ZiOGRPM1k1SGhxTU8wUUxjIiw0NjM0NDU6InNoYTM4NC1pekpaRmF3RE8zSGRFNGd1Zlh3Z1Z2MUIvZjZ0eDJpTTBoM29ZVDFtMGdKR0pyQytSMzJiWXMwbDI5eGlvTUUwIiw0NjM0ODY6InNoYTM4NC1oV2gxV21iRDhVMUhGN0ZOckVGcHdtV2w1bVJ1NlNHVTAxcFE1ZUVaL1Vvc2h3T1ZhdXBhQkp1MHZiQjNxNUYrIiw0NjM4MTY6InNoYTM4NC1VejgwZzBHNEtTTmF1SW44bllEdWMzaDcwMjQxZzEzdSsrQWZKS3RGRnlRc21YZ0dCcWNGVW5oak1WNW90K3RkIiw0NjUxNDU6InNoYTM4NC1yLzQ1MHNVQkw0ZjlkcFRJVUZKMWticUxVdzhuQUN4ZTlYNkRFdDRGcmcwMFBTOTlTWlpHVTkvSjBrN2R2MlVyIiw0NjU1OTY6InNoYTM4NC1YOU5jaXZMSFJ1V2V2UmRFTjkvR3lBUXhKbm9FV3pSOExhNnZlMm9BZ2pxU2tFUlZETHRiYWQvTDMyajdvbHhXIiw0NjYxMDc6InNoYTM4NC05UFh2UWc2YzI5LzdjWGtSSXd0TDQ2N0p2RDk2Z0IxSlh0NTlSU3RkSEw0WmpsSndHaWNmNkozclVIMnlpSzYrIiw0NjY5OTU6InNoYTM4NC0xZDArUlE5dThWVDRGbzZ1VzFjUDI1YWxrL3NNckhyMVBJR29EZDY0eEs5RVBUNEN6K3AwdEo4QkpORU82UjNDIiw0Njc1Mjg6InNoYTM4NC1nWHJEeEFQMU11Nk9ScTlaN3g1MGtQWCthejhNeTFpajk5SVlFTGFxTGtTMTNabEJ4TlVzMUJ2YUM2Q0NvOWowIiw0Njk3NTY6InNoYTM4NC1OSXFqRHRhQVg0bmVmdVNKN2dHMFppZHQ0SmZjbVo0ZzlZejRLNUpVdWprbmRabzU0aGNseDNIWE0vdTI0ODY2Iiw0NzA0NzE6InNoYTM4NC1ESVNGSkNaMkhCS3dMTEpBUm9jaENVc090ZW1Qd3NqV2lCYzZUaUlkUTI3Ty9FQlR4cE0yR2pmaXlML2F0dU1IIiw0NzExODg6InNoYTM4NC1JWXdtMTB4Q1dOVHd6aXh1WHZuK1ZYSzJYK3l2RWQxeTlzQVZaVTZMSytiMmVoNTBSakxLNWI3Q2RmazUwWmltIiw0NzMzOTk6InNoYTM4NC12WGQxR2s5TWYzeWsxbDkyRzhxSTc2bVJQdHFzejdmM1FmMEJ1YVdPdXZ3MHhWYmdnU21OZWU2UnJBNkN2dXBOIiw0NzQyMjU6InNoYTM4NC10aVFTaS81dTlsN0VWL3dRZmJCczBqYy9WWHBVSEJ5VVZtUXF4NzNRakFiWkZZaUgzZXFKdmZhSHpPYkJKUlcxIiw0NzQ5MDI6InNoYTM4NC1kMXhtTWxqT3NYb2tKeWdkempnaC9BN0xXVDBrQk9JTkpXUWsrN1lxTnZxdmpmbzF2U1BvVDE0SjNGS3VPSGJ4Iiw0NzYzNDI6InNoYTM4NC1ETUhOSHhQd1NXWWFzRkZqNEhVZzMrcDl5RVhwUUhoRE5CK0FTZUtyeEpYZ2hsUmdRY1pZNjlidmtVYXVmbTUrIiw0NzY2NTg6InNoYTM4NC1EV2xaK21VNk56M28wRHRnSzg1Qkk0SENPOGlSc0hCNkR2VEh6VWE4YTMzeGhaeHFLYmdDSFM5K2thMlF1blNiIiw0NzY2NjQ6InNoYTM4NC0vbGpSTEJmTHlPNlpRbGpPOHNvT0UzTVJoNnVScncveHFZcFltVXM4THJzdHI2MzJXOW0wV0tSQkhuT0c0VmV0Iiw0NzkwMDk6InNoYTM4NC0yZGFyUWVGTFYvR3F4SHc5OFJXZ1RBWDR6NlNKUW90RSs2cDJmWktpZmQ0eEljOXUrVmsxZU55RWFyOVVwRjVlIiw0NzkxNjk6InNoYTM4NC1GdTZYb1ZFMDFWV3g2VFBISG8xa0VBK3VPckdLRVNqSTJTMVVGeVl3Vm1ZQVZkb2ZML3BRTnZDOGdHK2pFR3IyIiw0ODE0NjU6InNoYTM4NC1WZHJCcFlaWTlWWno0eGl5RWFGNnZ6dThhcFdIRkNCL20wNTRVZ3ZGV3hwTlVQSnhZeXU3T1J0NVR5UkcrNG1HIiw0ODI4MzM6InNoYTM4NC1zOTZDaWlGTlMzYm5WTjQ3RWR6d0Z5YlhzdHVPbHJqdEVzaFh3TmhhU0VaYzBHbHd4WUVrdklYWG40WngxUEdhIiw0ODM4MTk6InNoYTM4NC1uWVZvcEJab1dSUm5Mdkw0aDFlUXh2T3VaNzA2QWd3Sm5PNUErV09hdHFNZ1BQclAwZUYzcXNFVWlqWVFsaXg5Iiw0ODQ0OTE6InNoYTM4NC15MVY4MUZRRTNrdmxBVzB2WHpvTXJWQ1AyVUVYV0pwNjRQc0dXNHZwVkQ5MzZyUkwzQlh2VzFLZm5CNTZKUHVTIiw0ODQ3OTk6InNoYTM4NC1ZbHNEdk5tdmpSejliclFGR0xHWHZqTG9tdHlwSTgrelVRa1hFdW5qM0g5SEluMXNHSFgvc1ZoT20wUUMwSm84Iiw0ODY1ODM6InNoYTM4NC0waXdiK09XZk1HeEY2TEZ6NExpbTJRb25hbC9PZ1I4dTFVWTVkVmFES2V2MG9UVklsb1VlMndGeVEveUhYUXVLIiw0ODgxNjk6InNoYTM4NC13NFloK3JGYmI5dlIvK0ZLUVRXdnB1SmFFVU9CNlgySEJNUjFlRzFUQTJYWGNxQVR6U1Nib1FVVXdoSG1uRFR3Iiw0ODgyOTA6InNoYTM4NC1rQ3lTbTkvMDBJSW0vNG4xZ0xJanNZMTFuTHZLSFVpSk5kWFJQQnVhdXFFb2cwY0JrODViQTE3c1pBUStibXZsIiw0OTAxNDA6InNoYTM4NC1oS20zZXFydW1ZTzhFWTAySkl3QVUwVmU2VnNMZkZpVXMxWGVlNVh5aWpwU2prREZIWHVFY0VYNjRmL3gzN2NkIiw0OTE0Mjg6InNoYTM4NC1IRnNHNlp1bHJtSlpISjRFTVk5WkgxUXU3ckwzV2dxbVBRZTY1MlhyVTNxMDhhd2lmcmhFUTRJOFEyOURZT1F5Iiw0OTIzNTA6InNoYTM4NC1mZFhTQzBjWmx4WW9zQXI3QmNQTkMyL0FuSmZZZDlXaFNEOW4vL2JFS3FJcjU4d0dENjNwZ1pnUnQ2OXJhVnVPIiw0OTM3NzQ6InNoYTM4NC1rKzRBUzFUSGNFVStidk1sZGlBbFhjb1JYTHhISzdUTDVTT0FPYWdmSjNyTVlRaG5sT2ZxcE1CcEt2ZTNTUmkxIiw0OTM5MzQ6InNoYTM4NC1oZ3R6dmxVeGExSXNpVkQ4RVE2MG1abEFVOU95cXhDR2RRa3cwNk13SndvSE8rc3gzdU0zYzVBOGcvVTFKRHdPIiw0OTQwNDQ6InNoYTM4NC1YNmJxRmlWYkw3UUlvTTFCRW1oUllNZndVQjd4Q1dkWDE4d0FoNkZqQVYvVW5wdUsrMzdMN1JVUGEzYXpCYmFQIiw0OTQ5MTY6InNoYTM4NC05eFQxSXkwcVdES2hYL2MyUFh2bUxVUjEyOTFiVmNoNDNBelk3OHRwR1kxMXFhTnZqT2RYVlptaTFaSGhEdlFtIiw0OTUzNzA6InNoYTM4NC1pSCtiNlNJSkpTU2JndnVudnl2TnVNQjhmNVZSbmRhQU9FbHUwNmdRVGtoQ09lNUUwT0M5c3ZoblRxU1hIZWxGIiw0OTYxOTc6InNoYTM4NC1aalV5VHRKTnR4NE0yaDJPaWQzbEl6M0pYZUF1Zlh0d0xxc1FEYW5GQm4xRnE2Tis4OFFLNzlrblg4SSt1MjZUIiw0OTY5MjE6InNoYTM4NC1mdjBQejJ6VlJHRWFDdTBLT2wzMkxsWUt6QVA3Ti9nY2ZKYzhkNXhwSmF3Mjg2QzR2L0drS0JCRDZXK29pWDZOIiw0OTc0NTA6InNoYTM4NC1GeUFucTR4ZW1rRFNDUkZ2bXJYUnI3MU9RK1JXWTE1Z20vVUVna2xsMitWc05TTytSLzFUSHJjclUwejBlZ2ZVIiw0OTkwNjk6InNoYTM4NC1oVUpTM2dHc2Fyc3VOc3hrWHliRi9SZGdySnlCQVJKSjBUczA1YzMwNXhWMTlSK0graDR0L1BNTW1tSkRtWHBkIiw0OTk1MTE6InNoYTM4NC1SYXVGWmRieVQzM1RwOEhpcmcvNW1nMlRNT0UxT1NSU2FOazRMZitBRW5tUlRYcW9DK3ZOdUY4emRjc2NKUHBkIiw0OTk2NTc6InNoYTM4NC1nVHJUdkRjWnIrMk92eHVNandYVDBwUGJBN2dWZ1dCWWVvQXhEb3orUVBxMm9oaWlMNi9XV2xQMlA5S1VTUU5hIiw1MDAzOTk6InNoYTM4NC13ZjdMbEs4WnFRcjF5N0NJc0NnNTBIRTZFYUJSaERtck5nakdDbzdMSy9tZm1FTlU2UzdmVjNjdVZTYmp5UUkrIiw1MDA1NDU6InNoYTM4NC1zSi9DM2MzOHBkOFVaSnZWbEIrNWVJWVhxQnNCem5nYzZUOXQ3aFFueWlHV3I2L2VKQ1NPTVBsK1Nabk1MUDVOIiw1MDExMzU6InNoYTM4NC1ybnFRb294YTExQVNqM1gvNlc1MkpXT2ZobzdXUEt6YkpEc1JXZGtTYkg0Z1ZUUWowdEdIT052My9sRVQ5dno5Iiw1MDE2OTc6InNoYTM4NC1ZaGF5NzZ3QVNnVVJHRi96S3E0SSt1QXRaNGhRVnBXenZqYm1OdlkxZE92SnpnMGZXcVB1dkVXK21lK0FMcHhMIiw1MDI3MDY6InNoYTM4NC1NOTl4YzZZZVpDd0d4dTIwZkI5WkZwbkZua21lU3VJb1I0TG9sdUd0OUFQUDBQUWw2djBFVERGN3d1ODY2cW1IIiw1MDI5MTI6InNoYTM4NC1vZURIOGt6eXVEZnYwd2l3Z2RQTm9aTDNSNVBnT3NYNm43c0NNVmR2b0V6b0x3SURuVjJKaVVvMURXeWFpYVFiIiw1MDUyNDQ6InNoYTM4NC1KQ1ppSVFJMVMwS2c5dWdwdC9XcHh4VVc5QXV2a09MNm5zV0w4TzRzcURDUkdLMTVIcVZHSW9sQUhrd3dVOEpLIiw1MDU2NzA6InNoYTM4NC1MNEJHa1dYbHpCL2JWUktDVVdYak9TYmpzdEdtMXNrTzVuaWdoQllicFFhUDZxTVAxSTM3aDZVL1dINEpMVWJkIiw1MDY3ODM6InNoYTM4NC1nK1d5Mnh1TGNtZEwrY0RQOVZ3bHVSMHBjMlFrNGlKNlJZYldWQXNobEFJZTB2MjYzQWJWL09LaW04RjdWeXJDIiw1MDgxNTE6InNoYTM4NC0rSXRXY2FpaytnWU1KSWRIbW9Ec2xvWTMrZTRIMUNyNGZ1TzZnYXZGWVd4b1NOeVp5V2RFTEpBd1AvV2FlUGtoIiw1MTA5ODQ6InNoYTM4NC1ORkZ3OEc4UFBVV25YRTJ4UnZ4NHIvSlo2aDV0bXkxaGZCZ3lyQ3AwUEg2WkVZNXc5bTJROGhSb0VBT2tLcXczIiw1MTI4Mjc6InNoYTM4NC1qeWp1eHRTN2NjMHg1bkZlWUI5T1ZraHd1Z0tyclVjV0dXR2NkblhjRDhBR1FWS1lQWE5YUGVtVHpwMjRiZ21GIiw1MTY0MDc6InNoYTM4NC15aTl6M3lxZ0lueEhUWW45N1liUmowUUlNWEVUQ1IvcjFaQWNraFJGMTJDN2V2NlQ3cTFieHgySXJWZWlJSDZOIiw1MTY2MDc6InNoYTM4NC1VMmVhQWVsT0hkTFV0c1pKdllSZ24wenRRWlppSlJUUWQ0bUhNVzd2SUNlTTZDckNyekVwTTNnZHVqYzJHSUNjIiw1MTc5ODI6InNoYTM4NC1GanV1RkFHM1ExdDdmeVh5SkxYM0FJcFN4VkdWYmFaK3ZGVnZTWitxclI5OGNOMXlyRk8zWktSM0o2cWUzeEFUIiw1MTgxNDU6InNoYTM4NC05a0pURHpJd1pOTUoyMlpDN1BDWEJDUnpHWWJXVjVab2U2VjFuREgxaitXVGdOTHVTdWJyUkRDL2xyejVhTzZnIiw1MjAzMzU6InNoYTM4NC1DelpnN2VONUhPbFFhSU5iZ2RycjNEWS9HcGI3UGdpVm1nQ2tHZ1NmeHdOU1plZDR0M2JVSk9jK0p5dERtUUg3Iiw1MjA5MjE6InNoYTM4NC1SWC82K1REWXRpOHc0YWdXc0dDU1lUVm0vV0M0QnYrL1VjSnlWUkU2OUlIM090a2o5YjJ6VFlwOWZaUDZZUC96Iiw1MjExNDE6InNoYTM4NC1DWkZpU3Z2UUJrdnRoVTNxVnpuVTh1Nk84WGRJYzF6cjRSV0p0blk4M1hqcFJaTFV0aGJlQ3duMENNMkp5a1ExIiw1MjIxMjI6InNoYTM4NC01cEFrNHpmYmtibExnazlQeDliRkdHUlJWRW5JKzJYblBsK21kcVRuSTZUZ2dSQnFYUzR2TkZUdG5iYWsyMTE1Iiw1MjI1MDU6InNoYTM4NC0rOWMrUVFxTlZ3NStudnlmS3l4REI1clNnZFYzOE5wRzlaanpGMTRPREFvUW10N2gvc3NBQmx3Z2RRRFAzZk1IIiw1MjI2NTQ6InNoYTM4NC1odHF2eDhQbTVNZ2NpRjdXTkFaWDJLUU9rUUplTXNlTndHUUpKZ1NDOHl0cmV5dkhpRUpHck16MG5tb0tLa0d2Iiw1MjI5NDE6InNoYTM4NC1hQzVFbFJSTlhLRkVpSDlUMTU0Ti9iN2gyM1Z3NUU2d1N6U1I3THFybVNyQnF4Z1FYV09XdzFpRC9VeUxxRTlxIiw1MjMxNzY6InNoYTM4NC1iNHlqbWtCY05IVUFUb1RVMWZMZkVJR1RCZ0RlQmFIeUVoQVZsNEQ0blMrNlIxK0dpNzgzOFpHSlFjSjEwamxlIiw1MjM0NTA6InNoYTM4NC1YSVNBbEcxRVJIUVlVQnJIakpqNWVUL2R5YU5iRy9aYzI2RllWcDJ5Lzl3YktCcitUdWtDTEpERzJIQzRkMzQ2Iiw1MjQ2NDc6InNoYTM4NC1iTWo5K1hGTU1FNG5hWmhqb1VrVDc0TW9xOThJQlRnbWpzaWFqeVFQdi9zWVBpOGNJK3RHZ2xWb0tOY2lyMUk4Iiw1MjQ5NDM6InNoYTM4NC1FMmplZWljTUxJUFhMVTVwNHFBdllqNTE0d2l2MUR2RUhTTVgwazFpaDM4M1JPbmJOUlBmY21jdXRBNE8yWnloIiw1MjUyNTg6InNoYTM4NC1DbWhBMGZpU0R6M1BwK3hraXVwdWt0RzlqeFVkbUhQWWVIaGVQMVMwbUFjZVhNWSswdXA3OW1PY1ZFb24zeWtuIiw1MjYzNzg6InNoYTM4NC1ZeEhlK0RhWWdhSFo4bW9kSFZqNHVWRDBHV3FreDRXVTZiRjFCTHRMZGhRcjIram50aVloeStZL05tNkp3alI2Iiw1MjczMDQ6InNoYTM4NC1zRFFhNzNXQ0hIdjBpWm9jZlR3V1dkR0p6czF5U1VKRVk0eHAxM1JCcWtFNjk2Z3k2dk1PL2hLM29KZWVNNldOIiw1MzM0MTM6InNoYTM4NC1ROVJjaHNlT21IVlFDOGN3Mng2bW03enNnL0srd0x0QlViUzBaYnJmTnRRZlpYUy8rTFR3NlZHZVZyOHVQQ21OIiw1MzM5OTU6InNoYTM4NC05YnQxL3U4dnBDb3ZUQjhQL29Rcm1mTi9QUzl1ckNEZ0p3ejhBUnFRNFpoNmpOT1ZjVGVpQzR4cEFtUlM3NlNKIiw1MzQwMjM6InNoYTM4NC12eXNVdlV5Zmw3cTZyOWU1K1ZnMWV0MnVaVngxbEFsa1VaOGRWVmhTVlZKWFY5enNkcTN0KzY0dFB1RytsclV2Iiw1MzQ3NDk6InNoYTM4NC1nblljNktocVUyd1BTQklOY0RXa3F4VUVZY0R3ZFgySXFoRHk0M2hVS1ZrOXJzMzIzeDNtSU8rcUxYdHJtYlpCIiw1MzYxMDk6InNoYTM4NC01VUczVGZBNkhteFVSajJqVUZUN0JjK2pVaEpmT1RYM0pMVFZVSFl3NHEvT1J1M2JqS1pLUWVxc1A2MHpYOGVsIiw1Mzc0ODA6InNoYTM4NC0ybHFpRHJVc1RLdmUzRXBHZG9OY0Erb0loMkJhN0Npa3YvZGtibjJRUVhBcnppbk94YU9GL1BsUW0yYlA2YVhRIiw1NDE3MTk6InNoYTM4NC1vL1NyRklJdGpYTk9JcjMrL0FMWWlqNS9PUWJrcGdScC90ZU1Zd1NvUUYzTHVBZlE1VGg3YndiOVkyTzJ4WlFnIiw1NDI5NTQ6InNoYTM4NC1VV1NKMmVzVGtNSTVHaktLRVZEREk0QXlQOU5ZcFQyTGF5U3ZmNGc5K3VZRXllUnhMejBUaGpSTUFYanpSL3FGIiw1NDM2Nzc6InNoYTM4NC1rRjZGeCtMNWNTenNDTSs3Q216OGFqb1hBQWZrMnBlamhJNDQwK2tQMFhyOHNLUjFsKzhsRE1rMkl0bXEzd1VEIiw1NDU2MDA6InNoYTM4NC03RThRUXpOU1Y0VXdQYyt1cUkrdnI5N1MxYkJWVFZJUmVxRHp3UWcwVnlsOGpSZkRNR3AvT1hEdTM2bWt0MXJOIiw1NDY5Nzc6InNoYTM4NC1BU09ISlB4OWJoRXMyWW1GSW1nZGV2NndaanpZdzdsQW9LdjN2NDIvaHRoN1B2YjZZM25OWVpFbVhYMzl0ZlFpIiw1NDczMDU6InNoYTM4NC0vN3JOTW1nR2ZmazhrbWluczIxbzBTbUw0YXordnY3K3dQRUFHcVFMR3hBNmdpVkFlWG41VDVoeFdSZTVkaWtsIiw1NDc2OTE6InNoYTM4NC1sdkxLTVEycUM1NXhkVW0rVTBqaHFkTEZlUVFlS1RBRTdPS0lJTXplazRIODhoVlF2TWVYOFg3S2drSGVQVTFmIiw1NDgwMDU6InNoYTM4NC1ELzNUMjZrLzNNZm9JUThnRVNXYjJtQmtSSm51Tjlmb0VyZTNvQVp4MUE4YmJnUEVBWTlYb3Q1ZWNhckFNUnhEIiw1NDg4NTM6InNoYTM4NC1ZeC96R2hwZnN5Kzgva1d6RmxoN09lL2wvSFVVVXUrNTNLck5ML2R1WWJaWjlEOXdVbXpLcXhvU0EwVE91N1dGIiw1NDk3ODc6InNoYTM4NC0vc0Z4THZlTWg1QzBtVWRiRHZIay9ua21ZU3BnVEhLVE1HYkFQeGdzMTh6QUoyQzNRakhXT2UvNlFCUWR1THNIIiw1NTEzNTE6InNoYTM4NC1taEVEYi9oaWV3YkxuM0d6SDg5L1Znek1YbzVyWERmVDZZaWJwS3B1eE5ESFByQzI4MFFaNk1kZjBsY1MvY0p0Iiw1NTI5Mzc6InNoYTM4NC12U3VsTVlrN0pybVNCLzRwNGhMSWlTQUlTRUlUN3prNGZ1TVNGbGZmSUk1K2NZbVVOUmxqeXRZNGNSY29FaWs3Iiw1NTMxNjM6InNoYTM4NC1LOG9JN2hDSWlMb1p6aCtHd2EyZkZOWkVUMTNjajhBK1RiREZHWElIdzJLM0hqWWhVNjBTM00zaVB2WVovSDNiIiw1NThlMzoic2hhMzg0LVhyazZrNW9lUmtzeTlhcnFiUnB6R1p5S0VXdExISytjNXVxYm01MksrMDRkUDlBWUFqOUlHYjRtU29rdCtuYU4iLDU2MDE1Njoic2hhMzg0LWZZdnVNWFArWFlBN3BRMVRON3cvYzBRZVlxTnRmd1draWVBTGpralFRNDJhd2l0RUI4Qk43RzAwRzJBTU5KRzAiLDU2MDM0Njoic2hhMzg0LTRLVlZuam5tOTBRK2VTeWRObWZ3R3V0Y1ZZNUUzWkJ6UXJYUWl5NDYvdFkwWnNYM2tYdGNkaGpJVUp2cGZhMnAiLDU2MjYwMjoic2hhMzg0LTlmTkQyM1dHSE9ZVVhRS29QZnNDWjN6QkxUcmh4SnRWakF3dDc0aEIyYTRDbVFsdjY5MnB2WkNOdndlRGNZNkYiLDU2MjYwODoic2hhMzg0LWJPd1hIM3VqUjMxdG9BMmRwRytDbGpsTnc4R0R2aXNQYlVHeEFicUNxYk83YS85bVREUys4a1EweEtSZHhOMS8iLDU2NTY2MDoic2hhMzg0LUVPUjg4WjRhUGhGMGRqd0ZKb21ibnJZYnB2RktEZGZYaDJ4SGVCdTltYng4WlRnU2JLK0dwS3NYYldBYTUzUy8iLDU2NjIyNzoic2hhMzg0LVlMM3hoSkZtUUtoUGwvMFFhVHJXdDQ1blBJN2pBVWwyL2g5Wk4valU4eDVzT2FSNGVvcWZXajVVbWNjTnBFQXYiLDU2NzE2NToic2hhMzg0LWFKek5PcmdqNjRZakJVRDh6bUhKVEtNalNBTWtnQ3ZpcmhZT3RWbGhsREFXaFNESG1OZ25Yd3dkbmozM1dvb3oiLDU2OTEzOToic2hhMzg0LTlTbC9OTCs2NjVldUQ1dFRTWWJrcGR0dHI2R0NHbGlOVWc1bzNwN292MGlhcjN3QTRwSzg5QXF1c1ErRFo5ckgiLDU3MDE1Njoic2hhMzg0LWJRaVdzNklhMkNhNkNVenNaYWp2Vy9DdUhOamN2VVdJZzI2aFdSajZjL3lDak51RlVma2xpYlpxMkd3aUNoUVkiLDU3MTI0Mzoic2hhMzg0LTQ1SlVIbUI0MWcvaHd3bGNydS9HaFJzSjFqYjNpVDA1UVU2Vkx2ZG9GZ2ZoUUJSd1k4bnQ3RmlMeXc5VFowOXUiLDU3MTg0ODoic2hhMzg0LXNHcVJpb0xYOWZzQ2xVajN4K21HQ3ptaXNJQjVjTWl6enFEM2pqQjl2dWFRRWhFd2JacGVWUjFlWitZQkREUlMiLDU3MzY3MDoic2hhMzg0LUFEZFZja2NIZ0c0bE9DWXlpYzVHVmdKWnpmZkJMSFcxYytLdmFyWS9LemNobUhGYUdmK05lTXl1c2c0THg3ZDEiLDU3NDMwMToic2hhMzg0LVVrVXorb1pCRG9FY1dVdjg3emYxQkZKTFRjVVZ6dnZXMXR5a1MzS3Z6WXBVMUUvK1IvQW1NRWh4N01Qc2FqUmciLDU3NDU1NDoic2hhMzg0LVVOdVRDYTFJWHNEUzNlL2N4KzhOdmR1N1Q5ZjFQWS9aUTN0eFpsWmcwTHIzVWsrUmhOTG1EL3BtdnhiVm14QUEiLDU3NDU4ODoic2hhMzg0LU1ucWJjZTYxZ1pkUFRiZFd0c1VEOHdqOUNDZDJTWlJhYS9heUZvQzN1T2hMTitFd2xBRGUwelFOREFBTWl6SVAiLDU3NjExMjoic2hhMzg0LW15RS9JdVhnQmZ3cXRxUWNuV2Z0bXgzcEJwR2RsN0wzY3o1bDRQNTlpOXNjMGc1S3JrdWNzU0NROVRNYkI2a0ciLDU3NjExODoic2hhMzg0LTIwRlpMZUNqK0VYdkJQVU14MTdub3kzb1FmT1U2aTJDUXNwY1JQdFpUcmJoUnJhT09qanVSSjUxRUxkQUdXTjMiLDU3NzUwNDoic2hhMzg0LWZDdW1IOFBIZ2tkTDhQLzYzSXVMNzNqZm5KUkh0ZnBQRzJRa3hzKzFza1NOMjQ0WEx0WjJPYWQ0czc1WUdlQ3QiLDU3Nzc2Mzoic2hhMzg0LVNDdXpsdjdOayswMDFhM1J1bVVRelk4cnQrc0hZQUFiREt2U0ZJZWlLZ1F1L01SZWlYK1VSVDZ4U09FNnVOVDIiLDU3ODA2Mzoic2hhMzg0LXFtZVFLR3FNQi9Zc251a25kWmM3RGNDLzFjdkpoWWZaY1d2UmVoRVNpeGdWeU1JT3hTUmQrckxoY2ZSR0dFc2kiLDU3ODA5ODoic2hhMzg0LUdoVHRxUXo5ZEJkRU1tVnRoWXk1TWQ2VHdDanB5VWp2bnVORk80aGRndWpWNldsckJraHp2V1IxTCtQNGJIb28iLDU3OTIzODoic2hhMzg0LWVRZFEyOXZNUkVSWWo4OFdLbUIyK2RQeDdCU3VuY2RVRjVrVkZWTndGOXU4bjNrQ25LcHN5eElqcU12TE00WmkiLDU3OTc5MToic2hhMzg0LXZKN3hKOGhNeENZTWxVUTlzaE1pQW1qdzBWMHZrQzNuSEx3MlZGR1IzbzhjRHg5bUFMdys5cng1K2p6OFc5RkQiLDU4MDU3NToic2hhMzg0LXhOUnpLOVNBN2U4OXc2cUJrRHJLVmNRUE5LdTFRT0EyK3dTZnJESUZpUlNEQjhmUGk3U3JyeE0xSm8rcjdiU2EiLDU4MTEyNDoic2hhMzg0LUlmcUExOVVwYVNpNnpjbXMzUEhqODI4ZlQ5NUMyUkZpQVBTanFaOUJXdTFoOUhibFFydWZQc3BWSENjcEUvT1AiLDU4MjgwNToic2hhMzg0LU1tSGFEL3JCVk91b1cxVkF5ZTBWUkQwMmloR2I1UzdGYnkyMHFJZWpaZlJSOC9WVXFITnJPVUdjOGNYemx1dmMiLDU4MzIzNDoic2hhMzg0LXEzRW8vNnlySVYyY1VibUtqOEp0cG5VcDlLY2NDa1Q5QzdKeVVpNHlBSWU3eEN2d0ZRQldVUUJxVU1yNTUreHciLDU4NDIzNjoic2hhMzg0LWhWK094WGtpWmdhMit6aGdPaDQ2ZllQcmZDTllaZ3VRRlExVUZoWmZXTWdzUU5zYVBxK2VWNWRKNmxUK3hiYUgiLDU4NDkzODoic2hhMzg0LVVHU2Z0QXBpL09aMmQ2SVQ3UlhESis5Y1dKMVowaGFTdXNoM21aLzBRUTFMU3diMmo1SWFZN2dPajVMa0VNLzgiLDU4NTA5NToic2hhMzg0LWhJc3FvRHBNT1V6M1ljdFBPOEthbW0zT25peGFYY0xzK2EwWWZJQWx5UFZ1cTZmM0VsOTR5Ny9EeFBwV3NnUU0iLDU4Njc2Njoic2hhMzg0LWNIV0NxTlB0U1luQlRkeTB0VThybW8yQjJldkVYb0d2akRRRnhZTzlPTUZraCs2QnVqWnNkTXlsTE9rbzY0aWQiLDU4NzUyNDoic2hhMzg0LW9SMEZVMVZydFRtVEpId2ZxejYyRDBQTDdHcndEQVBHZDcwcXg0NTVEU3RpalNaNVp0RUlsMTd3K1FhODJQaUsiLDU4ODYwNDoic2hhMzg0LTIveWdIVEIvOFFSYXk0OWxVdUI0Wi9wSG9zL3ZZRGZSRVJYZjRDdndSUUFtcmpadVVtSTJ0aDIzV3VhZUIwQnMiLDU4ODYwOToic2hhMzg0LVJxdEZDUXRIVS82cXNBZHhIeWFNVmpzRHRsWE1IT1g4ZFJvQXQyanlrNTVnVjJyeHBpa2xNWGR6alJNQTF1bVEiLDU4OTc4MDoic2hhMzg0LVZFU0pKazBTbTRPbDN1Kzd1bjdvTXMxcVQ0bXBlUnNrOWdZUkJ6bGpORFFHUkRqQVJUU29oWTg4Ykh6VDQ2dXciLDU5MDIwNzoic2hhMzg0LTVJM2U2SGdUM1E3ZVc4dC93SVZGMjFnOWFyczZ5M1NxU2hqeGNJUWtPcmFzTFk1VXFEYjNlZW93VUVCZWIxamYiLDU5MTEzMzoic2hhMzg0LTNXeEl2YkF5NTUydEVVRTBJdSs2MG96alkvaEM0b3ZxbVBnL3N0MVh2VFpmVEczZURQNEYvTUM3SFlFdGxlWVUiLDU5MTU1NToic2hhMzg0LWYybUZGeU91QzVXcVVmT3E1Mlc3ZlhjeEhoTFE5SmN1aCtWa1JzR3JlTnpKYzM5ZFZCUFhuSVpXTkJBNlRQOWMiLDU5MTY4NToic2hhMzg0LVJLdGFNRXVtWFduek1Gczd1OVdqWEdzTU4wUHRuK1ZoN3UvL2JzMC9oYU1ITGY5Y1NxbTcyYnc2RGhjcTBWU2giLDU5MjUwMjoic2hhMzg0LTlubTVrc2U2L1dmNnZNd2tQMk5rdXIydU4yWE5uWWlENnlaQnY5QXhvUWs1ajRhUEdrTzUvVGwrb3ZkQ1Z6cCsiLDU5NTkzMDoic2hhMzg0LTdobE1sNVo5Vm8vbVh4Z0hGQkpHeVRaVUdUK0ZlVTJJRTR2U2dyR0ZJdXRkY1dhQWpwODNySEFuMjFrS3I0cmYiLDU5NTkzMjoic2hhMzg0LWNpVFlxN0ZhY1VYYWhZd05ZVkVJRk50ckVBWjFSYTA4UVpYNWl1K2JpMnczQldpSFJ1L3FBMFFIRmFtNVZiR28iLDU5OTIxMToic2hhMzg0LVNMTXFiTlg2R2EwSEwzVU5YL3VSVGx6MzFUKzkySEhBNDJTZkF1SElOY0RyVEMzeVkwWHV3WlJtancxdDk2Y0EiLDU5OTMyMDoic2hhMzg0LWRBY2NoMVZlNUJEZERFcDFqbGplMUNISm9DSVdlVGg2WmhYSExGZ050VUVUcXBtKzUrbm1OL3RtRFIyTi91VVEiLDYwMTA5Mjoic2hhMzg0LUJYd3JjV0s5L0pPVTBMTVRTY0J3bkJhSGNDeDYyUlgxTXcvQ1ArSVkyQ1pma0hoVmdySnRablA1czU0TkdnK0QiLDYwMTYwOToic2hhMzg0LTZrVG9Va3Q0V1RpUHE1SUdNNklGZndzeHhOVTEwSldpY21OUXkzUmMzOWluT05YRk0xYnYzcDZCOW9JV3NGWGIiLDYwMTcwODoic2hhMzg0LXVPL0luK25hcnhZM0I4NzRLbklYMTNVbHhQbW9Rbzk2Tm5RUFFpcHJXZWpkd0J5eHlCdkhiWUhvRGd2dnFEM0giLDYwMTcyMToic2hhMzg0LVphYytzQ2VrN1l2YlVYOWFVRHByb0JXRktDMm1qUU40N0hwMDlIemx2QW5HUVlpSVcyWlBDVjZXRVE2RXdnNDAiLDYwMjIwNzoic2hhMzg0LU1ZY0p4TXZybTVJYWp6TVZvL3ZzTk90SzB4UDVWUFBYZjVIakRPQU1ZcnljdmpRM3BTWStWcXJwcFNPM0VMUVoiLDYwMjMwNToic2hhMzg0LTZZeW9rYzZWOGVLNUl4TUxHQXZsU09LSWVQcEwxVlNYeEw1bXZlcmx5cy9wYWs3bTl2WmpmMnJzQUpKajlOcjEiLDYwMzQzMDoic2hhMzg0LVczQW14U3l6Uk52YW5RRkRtZmVuZFVCODhlYVoyZWFtL25hVnpHYy9JRTBJbUFnN0lCWitWVmlrVU9oVTZBeXciLDYwMzY0MDoic2hhMzg0LUJIT2hPOW8vVzZlWUFBM0VMaHJoaVkzazBWb3EwSGF6V3ZiQlpUbzgzNWZJc3ZJbEJzL2d3Q3dQUFlsSi9BeTgiLDYwNDcwNjoic2hhMzg0LWVSNjFXTzJad2Y3c0RnL2RyWG96dzUzM0ViS3F3TU55Q2tLMEYyV3Y3K082TDFuYng5TnZIR0VXR1VDYXQwWXkiLDYwNTEyMDoic2hhMzg0LWRPY2ovVFZKUm9nWG9Zd25UTWpkUG1kQmt6YUhVNjZONnZYVjhrV29IV01wN1RYUDVsSm1XUENMU2x4WmJYOTgiLDYwNTI0MDoic2hhMzg0LUpEQnhvMVdCcWVSRU1Xb1ljbUMwWTZHRFI5SFNPcUk2MFJ0WlBQc0RCUkovNEgwYTRYUTEwUFhSOXV2anZMMFciLDYwNTU5MToic2hhMzg0LTZHQkIyaWlwL1IrUWNJQTR0UG5zN0UxTElGUldYUjhSc05FeEYyeWlmRkMxdUpKQWhDMkJDVG9tYW1rV2RCZW8iLDYwNjM1ODoic2hhMzg0LStNZnU0a0tjV1ZZVkJVc0lvczlzOXlBTzJEeENlL0tMTFA0MVJNTFZTaExpZFhRd2RueU05c2haNndLcGNKZGsiLDYwNjU5MToic2hhMzg0LVpka3V2U3UrZ1I3Rm1ncDVORmZCNGRnQXQxcjY1dEE3RnZ2YWxlU0g1aUhuSG5rMThjaGFBL0ptVVhTT1NzcGsiLDYwNjY5OToic2hhMzg0LTQvemxXMGo0bGxXek4xeDhaaE5zSGVGckowOFZQNEZjT0hGWllNLzNrS04xQ1dYR2IyVWJ2OFNscEptOGVmRmQiLDYwNjczOToic2hhMzg0LUljNXdIWVF0ZUIvV1pEWExoVmlDUEQrRHJhdXJRa1J1YUhoS1BnSzVBa3ZXTWowbHMwTElEdkxnYzZLaHNvem8iLDYwNzE4Mjoic2hhMzg0LWFpOGEzMXo1eEYyRW53R3VWQmt1ZG1JbE9NcFlHRjlDRUU3U3dCNGxpb1hGRTNRVWVFM28vZ0grOGFBWExJRTMiLDYwNzkyODoic2hhMzg0LTdkaGxIeVd4T2ZyWGhTUHZnTnVlcVBMMWxzdzdVS0FaNm0xNU1OK3ZTa2Q2dFFRdzMvdmVYZUpiQzl1S014dGoiLDYwOTU3MDoic2hhMzg0LU40K3ovTEg5ZFMyOFROeGFWcnJqaFRJVStDNDVLaWhpNGpVL2ExNEpuY2RWc3ZxTU1VZ1U3eDlzVnBZNlllKzkiLDYwOTk5Mjoic2hhMzg0LWZFaElWalBVMk44Vm1kSm9QcjIzUXJReFdkSG5LTXR1QWZrOG5BRHIrMStYSjROcE5CV1J5UnBybjlrYm5ERzEiLDYxMDEyNToic2hhMzg0LXoxdGo4NVh2NDNTVzhxOUdDc3hNL0dhbFZ5YzNlaExwZjlhWUprTndQbE01b1FuNmM3dE9PNGJNcUVNdXBmMWsiLDYxMTI4Mzoic2hhMzg0LUFjNEsvUUhLSjVDQTNRZzJZNlJKWTFnK3NBbFdqQnQ3eFJwRDEwWDJ0MTlwSUZ0YkJadVhyZXdmZ050RVNrdmciLDYxMTY3Nzoic2hhMzg0LVlWenNNbGhkMU9mSG9KK2UyREozTmpJei9qZzlKOHZIZzM5eERHL2JkSnMyWXh4NlNEcjJCeDI2UmEyVVFjTjEiLDYxMjA2MToic2hhMzg0LXBPOHhtV3RHWlc3aW90dGFLSTVYSytWZVE1QnhkZU1tdUx5SUIzVzRRTEp0UTJJMjdoeUROMXRtNHJyZzlvalYiLDYxMzI1Njoic2hhMzg0LWo1cFMrdzJLeDR0ZDFQT3VnTGJCSEpkaEd4ZVBrZXAvL2NMaTRKMFl2VExHZXdLeUZYUm9zNDRQR0REbjZoOXUiLDYxMzI5MDoic2hhMzg0LTNBTXJDbldTMHo3dnJBT3B5c0ZZNnljSUZUVERhTjExM1UvcmhLbEF1MVpMRVhPc2duYUI1WXpXZDdrMUpWcFkiLDYxMzgwMDoic2hhMzg0LXdKcGVPclVXZVBjMUVjWmxnNnJpdHBWMFFCNTBSb0o5c3NCMGl2Ly8rTEtYbjV1SCt2SnkzR2IwdXhVRUZrNWwiLDYxNDI0MDoic2hhMzg0LSs4U0srTXlsdUlnbGF2OTR3TWdQMEwrdjg0SVhOUk9yVXYzQ2tUSjBrYytKU29BaDRNWmppbjc0MysveWlkeFYiLDYxNTMxMToic2hhMzg0LWtQOUZNdnFaaVRKZis3aTJMMGxvYVB5U0FIanlUNCtoUW5QSnRVNW8zZ2dLdDBNUFVrRkZ6NWxPQTloZGkwSTkiLDYxNjIwMjoic2hhMzg0LXpDUlVnV21uZXBSU3ArRUVkaTZZa0R3cEorM1B3cUJ4MmtkRjZYYWxsMGJoQ0lrN3VUYkoxZjhkYXBaaE5NanciLDYxNjI4Mjoic2hhMzg0LVdqTWtCVGd3bXVTeTNSTlNiQXJnZzFjWFc0cnVwMmVFYlIxNVNVMzNGUXpUTVB2d2dIb0htaXpvRzZCOUMrWk4iLDYxNjU5NDoic2hhMzg0LXlNRkNGb1hoTlFpd3FSK3A5VVF3VWM0d0FwQm1XWTdrdEJ3N016VXdWRk9kZS9UeTZ6NGJ0QmIyTU9Icy90VlAiLDYxNjkxMjoic2hhMzg0LU1icm82MFNKdVBhRisyOVB0cm85VW8vcGpZWXJ2WGh6TjRxc2RCcnZGZFM4RG1ndDAwTjgrZE12TVBkWEMxOFciLDYxNjkzMToic2hhMzg0LVZjYnYydUxpRjY1Mm5MQVVQNm9LRklXalk0di9GR0dMMGNNZGtuQndGNXNWRWxvZzZiTENTcFpaRllEWVc3bFIiLDYxNzc0Mjoic2hhMzg0LWxacDNDaGF1NnVjZHJ4M3pJY1RZamprbDVNWG92QVRmUXRtdHNnV1dnUW5Well2Q3l5N1R1SGdDbXZPRGErTDciLDYxODAyNjoic2hhMzg0LVBSNGdGMDFmYldjakhmaDZpTG11eVJrM3VKZ0RkcCtpbCtmOXZJVU9XNlZTM2xYR2pEVnpYdkxCSlRuRk1hZmUiLDYxODY4NToic2hhMzg0LWdiTHk4RFU3UDRxUTNML3daUy9mVzVDbVMrbGJHeG1jZmF4SEsveTJjSWdlaTVSWTI2OGJQY2dQL2VwS05pUS8iLDYxOTY5ODoic2hhMzg0LThOVnBvcUo1S084OU9MRDNneHp6M3ZwWEROSm5Fa0FxL3lQbWFVQllNZWNleXZpeE13YjE0QUM1NWZ1dlppSGEiLDYyMDUxMzoic2hhMzg0LTJidGJXVkVDUnBGKy85R2o4cEY1MFh5eFNkQlJuRDl5cXRBQnpPdjdkLzJaSkVOMWM0TUZscWhRK29yMXNlVW4iLDYyMTc5MToic2hhMzg0LUxkL1R1MEpvc0ZSRmNOUHZMa0gxOEtreHNnVWx6aHZpaW5UV2MxblpUMzBjVjVKaFdpek9wU2dTL1BWNGNSQTciLDYyMTgzNToic2hhMzg0LWVqVkhsQTlHYXlFWVB1RlZaWWNHYVVDbWY1NVdUM3o4amdVdVhjNmRRZXdmR0ZsTXBsa0VzSmo3UXBIY3h2Ry8iLDYyMjAwNzoic2hhMzg0LWZHTGR4WkxIK2N2SEJmRS9hWFhmUi9QK24yc0IzL2xBa2xmejkvQnJOWFlXRlloRXljc2Mrdk4vR0h4NGhwRnkiLDYyMjM1OToic2hhMzg0LXoxV3FzZHVabk4vNzJIWHdFUWVFRG90UFA4RzlLTGozUGF2UHBkakhZTS9rSVNVODVTbzZ0ZU9uZUc2WG5DVXciLDYyNTk5Mjoic2hhMzg0LXJSbGFSZHhuMytobzVjODFFMVNWZnFJWStUemIyVGFib2NtemdKSXBpRGIzQ3kyczQrQUl0UU1iVkxMVHlndVkiLDYyNzU1NToic2hhMzg0LWpuUklUQjNUanI4a1JrU09KKzhzZ1Y3Z0ZiYU83bDVEby9wRVFWS053Ty81NE9mTng5ZGY3eWMvQlhLRWtMWUsiLDYyNzY1ODoic2hhMzg0LWRmTTYyNzlKa2swSG84dXRBaGsxZzNjRFBRMVhUVVlQY0V5cndtbldGMUJvRWNHRkNvM1FwL1ZDd1hhVUVHVXgiLDYyNzc0MToic2hhMzg0LVBIelZ6aGVFTzV5WUdob1B2MzRkSExRM21ycjNURkxqTzZBVWFLbzZZL2czM0FQUXdsZ0UxV2xXTHhYVGRMK1YiLDYzMDAyNToic2hhMzg0LWhWTmR5cFgrOEltWW5sTCs2cmtEMWQ1VEd3UnI2amhyMnNYelJNQ2hPYzdmNlBldHRJMHR2WnRST3RyQnZYOWEiLDYzMjk0NDoic2hhMzg0LWJkY0liMUtsaHBLY2hXYUxLNEhwZmRFS09VdnFkWmc2SmhUVkY1MDZZVjlMMnZ1VEE3T05pd0dwaVR2Zm85eWwiLDYzMjk1Mjoic2hhMzg0LVRJam1rK092Tk1lRzBYTkk4T3grK285bU50NUl3QUxabi9WaFEyNWtVM1JyZUNXRXR0QzNPRWFGb1NIL2NTbGMiLDYzMzYxNDoic2hhMzg0LVhEbjI2UURVU1NrZjBubFVUbCsza3BaY1l2MkxieHE1ZUJhbnhOdTRqMWF5ckRjZTgzbGZNV1VoUFA0M1BkYkQiLDYzMzc1Njoic2hhMzg0LWh5YUlzQjFoa1hMNG1SdmJkRndTa3VBYkxpMTF4ZHB2U0NHejBMMlhudlF5WXpOdmt6WnlsdXR1VkIzdG9mSDUiLDYzNDMwNDoic2hhMzg0LVZKa2YrcjQzWDN1M2RZQWJJN0ZoTG9Oc1djVllKOElMQm9MMVpuSEd0RGdxVDc3Um41OGdhbklycUlITEFvZzkiLDYzNDYxMjoic2hhMzg0LXR0TGt5elFaa3plVjJPeUk1d1gzMC9aZkYvL0dBemI2Q1VrcWVDU3ZhM1NuQ3VQR0Nuby84eUYybjRlRHBJSDIiLDYzNTQ3OToic2hhMzg0LVRIMWRma0ZXU2FDNXk3Q21KZEErT01Oa3lId3MxNUlrZzh4NVhxbDN4ZklDZ2JHeThqUUdEeXR5YVNVSE5UTW4iLDYzNzU5Mjoic2hhMzg0LWtYSXdUanRYOWlLNS9ZcTZGWG9pNXpQUEdXZEJObGlqY2k1RC9wekVrWnlSMjR3N2xFZmJ0dHc4OXJjd2xVN2ciLDYzNzcwMzoic2hhMzg0LUU3SkdIMUM4bCs3NmdnUHFTQUdtbWJ3RmR1NG9wY1FWeG5kOUJEZ0h5WWRUS2xEMkF0bDJndUJBeEg4Y2pBNjIiLDYzOTcyMToic2hhMzg0LVIzTmQ3QzdCb1c3emJNclNCaTNFSS9TSzRIUDEvbGIwUFUrTDBtdDQ2U3Q2RXllQWRpbXp2UG9mWGR5aXRrV0IiLDYzOTkxNDoic2hhMzg0LW4xWUhQeE9wSm9JeW1hcTlBa0hHeU1TQkt1emlVdmJKWmRtcFMxM2J2a1JBeXlpUFpUT0RaZGVxVml4UitkYXoiLDY0MDExMjoic2hhMzg0LUV0OG05M0thNzB1Vm1XZlJZUm83QzdSU1R3YnJwaHlub3NyZU5JSzJGNEpyRWkzZXdPck1ESERMWFI4aTBNaWIiLDY0MDMyMjoic2hhMzg0LWxZUlFWbWdDZEFrZitiQ2NTQXVybWZjSlUvOVJGUVZteS9wWUJnTFY0MFJ2SDRJWTFjMHNUZjJybjdMMFh5cWoiLDY0MDQ5Mjoic2hhMzg0LWU1djdodzVBT0M5bWtTdGtFdEp5S2ZUTCtLRWFQWjMwY2hkQWpaUUpZQ3FlRXdrOVdwSCt2Q0NIR0dpYXBLb2EiLDY0Mzg0NDoic2hhMzg0LU1jNXo1clh5eW9kMCtxb0QyNTg0MnR3V295bWRyLzlCN0JLNWI5WTNEOGY5b0MxRlV6SUlKWlpIUzVWUDVpU08iLDY0NDU2ODoic2hhMzg0LU1vcjZsV1ZBWjlxOGpodHZnRmxHbGU4WUtiUDVhQ3YzYTV5ZWU3RTMxS1JvWlR6MmVINlZlWUl4dHlYaXNGM1ciLDY0NTE1Njoic2hhMzg0LWdlc1loK3kxL3o3RWhEUUh0alJ3OXNhY2hmS0FiczE3TnF6NUw3NTEzYi9rT2UwY0QxeXptZjhqRmRRaFJwclciLDY0NTE5Mzoic2hhMzg0LXlyeEVIMjRtcDhwemc2UUl6SkI3TFFkVnpBQkxHVFk0Z0lpUmJkR1VlVFovbnBqMFdNa3Y0T0t3a01JOTFIUkIiLDY0NTc2NToic2hhMzg0LU95VlpmL2wvZGczUHdYY3VSbnpiM2JxaVhuQzcrUjdwS2V1bXl3N2NOVU5BUmRNZHcyOWdpOTQ0dE5sOC9DZFIiLDY0NTkzMDoic2hhMzg0LThTUEtLWUI2TVVLNnEwOGdKK21FU1hzbDhORkc0OGpBN1E1MFlJZHUyeHRlbHk0MUVMKzRjTldOaGpLYmY0a0IiLDY0Njg2NToic2hhMzg0LThiQStvZTd5TnJvUjNLdXVVSGpna2twZW1tSzhNV0lvNlorU2JlS2ZDUFU5ZDhnSEJwd2RzRnYxODVNNnZRUG4iLDY0Nzg5MToic2hhMzg0LTV1cUZuMFNZQTdKcWFZTkZ3S2hXNFdncE1oWkVLcE9XaHZUcGk1MDhFUm8wcmhLclpORUJxdnFwUnZmc2RjdTciLDY0OTE1Mzoic2hhMzg0LVdZd1JncVB3R29saTU4TVM0NzU3VXhzaDhtaThHdnpqZ05yVmE3WmVUVkxoak1RRkRtVFh6SGV5VnJvRCtRQ2ciLDY0OTI0Mzoic2hhMzg0LTZkMHVNV0EzM2VIVGVYM01nMC85M2hDN1VyZWd0QmVSMVNtMm5tcmFuekk1UVB6eThJV21MWHhuOXp2RGdUV28iLDY1MDYwNToic2hhMzg0LVZTU2tWNjVpSUV6MGxQZS81T2lobHBOdUYrV3ZhOUk1TEZNVS94QzhLcHNnVDk0V1hoMlljckFkV1VDN3JXL3YiLDY1MTQ1ODoic2hhMzg0LU1zSndLYVZVMTFaSmcwTFY4RDl4UXVGcFBHU0Vhelo2c1RZbExtSnErYjVhZXAvMDRjQU1zV3EyWU00Y3M3UDciLDY1MzczNjoic2hhMzg0LXRiYTZBTTBrMXFHMjhraGMzR1UvOTM1TkZRZDlrUDlHcDluRGFPQ2hXUjBuWk5KN2lBZHB0TzNNdDFpbEpwck8iLDY1NTM3NDoic2hhMzg0LU1KT2M1em9aSWVVdXpwN0hGazFQNlV4TkJta3ZpZ1c0YTY1Z0xaY3prVjlkYnZKR25tdWdsbFoxVFR4MnZLMGwiLDY1NTY4Mzoic2hhMzg0LWJPRWRBdjBRaEtLTWkzQW1rckVoRG01QktyaXc4dDI4R3ptazNVUU91cE84Zm8ya0xHNEdQZHF0UEtDa2pucnUiLDY1NjU2MToic2hhMzg0LTNUTzcwYVZjRzRBVE1VRnI3ZzR0b0MrZFcyOHpMOWtwNkdkbmFucEtnTXJyWWhzRFpjVWZkS0NIQUFXeE91bVMiLDY1NzI2NToic2hhMzg0LXZ3ZlNpajlCWUppekViQlB4ckpNWUpDTVJ4VWs0enl1Qk13NUpaLy8xUzlSZDgxM3NlaGJjTUVWS29qYXlOdzIiLDY1NzkzOToic2hhMzg0LVlMdHdXMGJKblNnV0ZTSzRTRllEYmp4dVY1c2hDNTd1YkVQNExYWENtZjhSSHZzYzNoemxwdkpzdnN2cmcrbnIiLDY1ODE5Mjoic2hhMzg0LVp6bGsxYWZEQ05XbHhRKzBvRU9id1JMaVo4dGIzYy9CdVA5VEJzSEFoeXJIVjE4bWZyUlBxZTNSRFNSQ1dHQUwiLDY2MDQyNzoic2hhMzg0LUl2S1p1bXBKcjB5ZVJjL1F4OE1WMzlhN1ovSGlLV2ZtQ1BzeGJhbzFFWWhKUjBOc2oydHJhRWJaQzVxeHlQRlkiLDY2MjAzNzoic2hhMzg0LWRKZ2NtWjBPaU9BTHhmZGlKNWN1akRNTWlwMllhSU01eGJ0TkljZTFqN1VsL001eGp3RFJMQTIvM3dtc1FYTjEiLDY2MjE5OToic2hhMzg0LUJkbzhlR1V6dklIS05JKzZhYmlNbEx5MnBCRGNSQzZFMVJSSWdOTTZHWEVMbkpZOFAzSmtUc1BoNS80TXhNQnIiLDY2MjUxNToic2hhMzg0LWVERTBTUklBRk1SNFNGUS9FR01WdWU1cXpOeDMwT2ZmT0xOdHhOQkdZcVdHL0JjY0lpZ01YU09SOXpxVStVZkYiLDY2MjYyMzoic2hhMzg0LWN2R0YzQm1nSnc3VVlXcUlqWVRveDMvS0JmU0NPdzJlZXdEV3gxRzR3TTlxUVpQOVpTQTJUTUo1YkIrdVg5THUiLDY2Mjk4ODoic2hhMzg0LTN5MUdKekMrajhCK0hFNUpzZ0d1MitlQXk1aG0vdEhFald1NjQ2blBBN1MreVNSaDAwcmEwS0lyUWd1QU9Ib1AiLDY2MzMyNjoic2hhMzg0LVNkWUNUbGtieVRETXJMMlFMeDJxQ0l6U2VZc1dMdU9aYW40eGJCcXR5TTlhNWRDQTVHUHFXSitiT0hSeVU3UnIiLDY2Mzk3MToic2hhMzg0LU1GKzNQekZBZitOWU10K2hMTis2NVV3djVxeSs0RTN3QjhWZXRtTEQ4WnBMN0dtR3hyTDVXekhOZkZtTkN4czMiLDY2NDg0OToic2hhMzg0LXBOaU1pOC9SN1pUakV0Z3ZmU2hzRHNvWkhkbVlESE1abllSRi9HS1lnbmdWV3VndmJyb3RTT1lKWGhqK2lJUkciLDY2NTc5Nzoic2hhMzg0LUlJazlkRGdKWEZYRFozSVhXNXlGYVFiQU1kYXZWR2VCMkZQK3czY3p6Y1ZIVFBVUGFpdXBvcEtJWG5Fc1IvZEQiLDY2ODA1Mzoic2hhMzg0LUI1SEFoWEwrK1R0OE53R0pON2cwUkZ2RU4zS1ZnRldBRWxBajlTZWQwdU41OFlVcll1WlJXL29oSndWMEpBR04iLDY2ODYwNToic2hhMzg0LUlBZWlReDB1SVhjNWxaUVJta3BSR1pZYlFmOFNkM0F2aFgxWnU3cG1YNldTODNHb21USXY3d3JXQ1pHYXEzVi8iLDY2ODY0MDoic2hhMzg0LWE2WGJhN1I2Z0lsdHgwSlE2eUtDeHVKQlorY1ZIckZXcGNHSkorZXNXNkNMR28zOFZKWFRPU2l2ZWU0NzNKN3ciLDY2ODc3Njoic2hhMzg0LTJ5M1ROREMwVnRKbjVyYVRpVzhhanMzWnM5UldUTEkrR3pOcktDUEZDelZVTHFQWmdILzZQNlR5eE5jcVFuQ24iLDY3MDcxOToic2hhMzg0LUtVRVYvV0tWdHNuMnM5WDQvUkppZHlmRFloZEt3Zk0vb244NmpsV3Q1NnNZcjRiU3JSRUhRbkw4QlhKcHV0Qm4iLDY3MDk2Nzoic2hhMzg0LUN6VEZQaUg5UC9MSXZPUU5zNlA3VG0wUkt1K0Q1MC9IblJvVW16aGRPWnlrTmx0Um5CdDM3YUMwRWQyRkt5NUQiLDY3MjIwMzoic2hhMzg0LVcrZW43aUxZbE00YXZaSWYrWWQ4djNNQlhCWkRWNzEzUGxCVjFSS1JLLzJzUjRNTmp4eHBleGUwdUFJTVd4R28iLDY3Mjc2MDoic2hhMzg0LVRxaWJhYjE3TWZYYWppSkY5VExIUjRPK2NHVnpLSkZCek1JaitFTGlxV2dUTnVRV3NhamVFL1dGSVlxbkdIZ1giLDY3MzMxOToic2hhMzg0LWtPZUlycW56QlhvcmRXRm9WU2ZDSEdYemlHUTluaXNDQm1rbUxiYTE1RGVlRjJLbXFWL2FpY1F1L3ZjbmhCRU0iLDY3NjM3MToic2hhMzg0LXVkWWpLZFg3S21xS2QyaHJTK1pLYW9TTHlNOXdyOU1tRnBFRTZQUFgwWEdMSUJuK29RemxMdnJRVVNoclZaZEkiLDY3NzIzNzoic2hhMzg0LUlkV2s2QW9mcVJ3V0xQSEpkWFhBSjdXd2tNZEpXSmhHNTJaY2o5enY0a2dBNWJXRzNWZElsdzRYRm5vcDUrdkoiLDY3ODAwMToic2hhMzg0LVQ3Ri9NVUQxb3JTWE1BKy9lN3ZmU05heGxlQVpJVTViNUE4REJJaFh5QWtJV3M4dFR4d0FuK2JTcDNQeFVlUkwiLDY3OTg1NToic2hhMzg0LTEybm1VNVhiSyt6L0tPQy9NRXRJbUgyeG1xV0ZHckNmV014N1VNNW80NWdqeEdWK2xEdE01REI0ZXg1YU1wdkUiLDY4MDAwMzoic2hhMzg0LWZHRmFYSnFtaVBhMk9pQ291MW1qQmR4MzFLT3NZYzlrelJIOThIejVjWTV5eTJPVTN1cVliVVl4RGUzNWNERUEiLDY4MjQ0Mjoic2hhMzg0LTBVR1JVdGhEeFl5M1h2bEFBcjBuN0xmY3BhMWVGenJvSWxGR0liYUkxOC96RExvQXZjdmE4eFRrRXhCUk42YTciLDY4MjUwMzoic2hhMzg0LVJSdGRvVlFtUDlLOEZJcnRwcXM3SVZmZEx5QkgyNWE3SWV5Zm5GNXpOZDQ2dm84SmZhbDk5NGJVeEQ5L1dyRnoiLDY4NTgyOToic2hhMzg0LURFM3FkRVo0ZkxYTktrb2Z2enhrMUVUc2c5UXdDeHNaMzVCNVJUK3VBcEdkZ1BKR3JBR3lSTkQ5TFluM1FRVTkiLDY4NTk1NToic2hhMzg0LWRPaGZLMlRjMk1iS3U3TEJSY2NTZWhWcDRIbjdUYTMvSDlBVjlpMklrQzdEL1NRbmJmS3ZuZjR3U1hYN2xrdFAiLDY4NzY4NToic2hhMzg0LTQzTXlWYk1wa1hieVFuRVNyRXRrYmc2Y1pUVlRiYU84cFVqT1ZNZmU4UjEwTE9TV01xRzhvbkp3OHFGRmFHTEgiLDY4ODkzODoic2hhMzg0LTJKRTE0Nmp2WTQ4cnRSd0dxSUgzMzBuREh1Y1NMVkwydWttV0p4SGttU2szUkZRRmpOcnkvbzZ2NUlHTnFwMzEiLDY4OTQ5Nzoic2hhMzg0LXkzMEYyK095UWN5T3hhT2g1OVlRdW5zd0RZNGZ1S25kZFNlemRrb3EycUt0Y1E4RHV0OHEwNnljWkNEbzNQSkMiLDY4OTkzNjoic2hhMzg0LXp5a0FiS2V0UVRDODRjbTQxMTBhclJoZ1NhRWpaRSs3MXNRNlhXSmZlcFBhR1d2YXVLWDBLcFB2K1dnbGJZb1giLDY5MTIwMToic2hhMzg0LWtBaUNxb3U3eHZ2YjFadFplZWZLLzR1c0hpaE9YK1pCTTRiWVF1Tittd2Q2K04vbjFjbnJQS0VRNXgxSW5LZ2siLDY5MTg0OToic2hhMzg0LUZUTGJ5UStidnkvN3V1S091YnU5dkdOT1Z6bmN1UDhKT3Y3OTZKbnNQTDJ2Y3pvSUpLTkVIcGErMkVKWXd1ZW4iLDY5MzA0MToic2hhMzg0LWlzTmJEajVzeExFQWx1R0ZTZGhYNmNndnZhWWZRY0lSRU5RaU1hRW51aHFiUEE4REc2WFBFQnFBbzVsMmRNNVgiLDY5NjI0NToic2hhMzg0LUJoRnpsUzB1UnVSa1F4ZFdVS3F0eUZUMXRSM3BqMVBoMjNzUzBiTS8rS0J5RkN1c29wejczNk9VeWwyN05JNGwiLDY5NzE5OToic2hhMzg0LXlCNGhBZ1Y1ZkgrcWtRQWdmU0ZJTU03dzNBN0ZmN2JNeHR3UngyUGlPWGlBcVF2UHlWYzVhWUk1WjVwcnRPczIiLDY5ODQ4NToic2hhMzg0LXY0UXlhQjV4Z0xVaDBKaHM2d1R1KzV5c0hCc1JhOWxSbGI0U29sdXlnWXBLNVRjTFh3ZllaVkpiWlVTamtKQ00iLDY5OTM2Mjoic2hhMzg0LVRmNVhnWU5BNDUxTEpnWHM4K1lLTnR2K0QwaTRsVUNXckpxNU1lRmw4TWI5Z21ybG5FbFhvUFRZUmtNT25Gei8iLDY5OTQ5OToic2hhMzg0LVJteGU3QlMreWNSSkplbHBNMGNPeUVnSjRYSStwTWpSUWZoVHVQWkF3OEdxc0ZBU3BxbksrS1VOY2FQWm9uTEsiLDcwMDQ4Nzoic2hhMzg0LWRsRTJnSTd3YWxlMmxFN3dsZWlUMTBwd05EeUtmZTZyQkVhZUVNNEEvanNWQVl1cGZRb2lSQ3U1clEzZFZibXEiLDcwMTEwNjoic2hhMzg0LXBvUDAzdC9udlpWMW5ZRHdYaTJXNThKOW5DRUJJMVAyWklXYUFQZm5LVjg0N2RQcFJWTDNHZnpicURFQ0F6YXQiLDcwMTI1Njoic2hhMzg0LVZlQWhQcjVwc0tpbXpuZE5KKzJ2bEhGcVVHcXhydnFTdWpSQnJxaCswZnlvRytYQmhWdEtxbnhQTStzV3JNM1ciLDcwMjY0OToic2hhMzg0LWM0NnZScS81VHlFMTlVK0hTYlJ3djFlK1Q3R29zSDlPQmFySTNEMGdBL0phM09SMnFFN3orSlZtQTQ2b0N0aXMiLDcwMjk5MDoic2hhMzg0LVJsZzcvSnNDZmRGVnVWejFiRkFVTjgrWHRSM2dVQ29WbjVwWkJQUlEzamV5T0ZiU29CR24vTzdHZUJyMXF0bHciLDcwMzA0Nzoic2hhMzg0LUEvVGVUQmdZSVRLaVpQdEZnMXVYaklob0RUSTdBdGFsMUhENWovTE1jalhjM3NCTncwdzloSjQ0bUh2ZXVtTGYiLDcwMzE3MToic2hhMzg0LXFvQlNGbjlPOXpDSDlMV1FGWGl3WlEwcVpYaFdSNmlNTlBZYStRZFlDaUxRdnVDWGtQNW9FVjVQd0lCalZmVVEiLDcwNTk1MDoic2hhMzg0LXpoL1FQY3BEeVBTZ3kwVEhRdGZGdzRGSTcvNFd1bURaajJIS0dhK084ejlSMTVLUE80OHM0bUw2SVBNT3N3cnAiLDcwNjIzODoic2hhMzg0LTd3WE9ZeVBjSVRSZjNWU1JGNE1QckdERm5rSExLUmhtbTErTFNkVjBrZW1lWWxWUXo4R3JNd0VvU2JJTldGejMiLDcwNzA0NDoic2hhMzg0LXpFODRRWUlTYUZWM011OEtnZXFKNldwVmlVUlVUMGZRK0J0MkpNclNMWXJRaDh5TXRoaFJCNU9LWmg5RGpmVUQiLDcwNzE3NToic2hhMzg0LU02RDlvKzNrKzhVVVlGMEZPd01ieEFwRUNacEFlSTZoTUtIaW14NVBNTjNybE5FeVN1VG01NUk2ZUQyQ1RqOXoiLDcwNzg5Mjoic2hhMzg0LWUyU3JzRDB1SEswT0tWRm1oaGdlTDNoV3hndjhVRGV1cTNtMDBxUVlNcDl5OE9ibFNwWnZpME5qYVVPWXJWazAiLDcwODA2Mzoic2hhMzg0LVBZandscjZzLzBjMmQrWWVqK0cvakN5Q1I5Y08zZkJwWlUxQ1E4NStDY0E4NGZraXlBQUcxUlBzTnBlcE5xdFUiLDcwOTU3OToic2hhMzg0LVB3NHNTeVJRMU1qNmFJSHd3YmdHMUxtMUJHa1ZXR1ZiakowZUtLSFBRT3pUZ3NVU2VIMXIvVU1jRFpBR1ZBZUYiLDcxMDQ5OToic2hhMzg0LXBBbFBYNExxWW9DTEVYQjgrbWJ3Kzl3TklPeVI1WFZtazZpTzY0YWdwT3BzUlhQR3ozajkwUmhzZWllU05FblEiLDcxMDUwMzoic2hhMzg0LXVXcWxMSG8xR2NqR1phSFJBRjkySVIvTFlmdkJHcktYYlBMbVpYYjJJd3dPOEJHc2VEYUFSTzFLWmNSR2g5RFEiLDcxMTYwMToic2hhMzg0LXVrS2dScjdqcTRRVHJObS95NTQ5V3VjOTAvemFiS2s3NUNSUkoxUE5wQ3FIdFVvNFVGdmdZblhuNlA0UmRhNlkiLDcxMzU3ODoic2hhMzg0LSszcGRlQWJpZEExYStkc3AyN2RsOVh5ZzJkTWtrUVE4MXZuelNPUEZKZ2R4NUhreFFWNklnQ0o1cUkxOGJ0V2MiLDcxNDU3Njoic2hhMzg0LUYzakg3LzNncjB4WTFaRHBrMU05RFUxSkI3SkxJUVpHU2tNeU0wUTJsMnppT3JJYXNmNWhPRVZORitHakRiTm4iLDcxNTQwMToic2hhMzg0LTJTdmFXMUVKL2t0ZVNrWC9FYW9LT1Zha3BhMTZwWlFxQUdUTmpEZWcwNmhLdzFmdmZPcGl2SkcxeHYxbmhGRmwiLDcxNTcwMzoic2hhMzg0LWhha0pscndSbk0rUWozMTJEQnZUbmVGRU80eDlyUmVoNk9iRmlVbkVIeHZ3em8wREo3c1g2ajdtNFh3TDByVUIiLDcxNzM0MDoic2hhMzg0LWNpQTFucW4wQXRnbS9OL3IvNUorQVlWazhKbjBCUWdEa1A2RWFEVWdSYXdleEtwdEcyMmxSR2J0cytOR1lNaGkiLDcxODg5Njoic2hhMzg0LStIK2Q0RWRscDdBUFdLRlVBcG1RZ01kUWVEajZPekVsSjliMDVGVFJBNlR0MG9XaXVZTjhZVzcrWlVaWDlsM28iLDcxOTUzNToic2hhMzg0LUpVYXN5VE5ydEtyU1gwTnpleC9IMExsT013VXMvaUQ5VUZkZFhTVjFHakJKZTVUS1F0YjZBUkVkZEErNXMwVWgiLDcxOTk0MDoic2hhMzg0LWNnNm5GKzR5QnVQdjljaE5QTnpxQXJDMGdIVjYyN3RQZEJnbWZNTUJNaWpzRjAzVDIxY3puNE9mMUhkYjRyenEiLDcyMjcyMzoic2hhMzg0LWd6N2RUenlVRkdlYVg4MCsxQ2VHdW54a213OTJhVHZPWnRMbWtnT1FmWGV5c1U2WmZDYVVud3dZclZFUitDakYiLDcyNDQxMjoic2hhMzg0LVhVNjdSS1pjOVJKdnNvY2RJaWJocXBXdmV6Z0VjNXZNMWY0M1BiRlZmQW5RZC9sTTFOK29KL0lHY2tCdkNaVjgiLDcyNjIzMjoic2hhMzg0LVFuQ1pEcENpaDFVQy92Q2RnUzBrbERjamNMUk55U0dLUWNHSWwvNkRNV3VyZDFzVlpqQ2FXUUk5dHhYejZzK0oiLDcyNjU1Mjoic2hhMzg0LWl3SkZaOTNvM05kYk9xMXgwOXdVWVptRnBUcWd1Sm5xSFJ5Y0Y1Zy83aGp4YW5iVHByN1M0SjRZK3hiOEdBeTMiLDcyODA3Nzoic2hhMzg0LUlkYi9IM0ZiVU0yR0Z6dVJ6SmhzVkxraTJnYndDQlNHdlloSXlDbUp4VThYcWxIdS9rdTJIcG82UFlNazNDVkQiLDczMTcyMToic2hhMzg0LU1scFJGOWE2OS8rR1diU2lGRzF0NTI1cmdxb0hZUWtjZEFOVWtwUXJRbTlOQUI0ZTcvNG5Cc1B6NHZJZTRPakciLDczMjE0NDoic2hhMzg0LXgrbGhLclN3N2lKQzBSQS9BODFublIraFdNSE5uMG4vM3ZXbkR2YU8zM2RZTzRpYTljcnNFSnBJU2RoYmp3RkciLDczMzYxNToic2hhMzg0LVlpbXZDeU12U09kVlp6UDZvcFdPS3lQenZRK2dMcVJsZTZFUWRkQnZ0czVoYXVwZTNVVkE5SzMyTTZCa2czRjIiLDczNDE2NDoic2hhMzg0LXRiMkFvVXRsSXZRV1RpcDJTTWdaNjNQVlN2ZmRSTm9TTGFLc0ROMnFkTU9LOEh6blhUa3R5cUsweUs1ZzNBdGsiLDczNDIxNToic2hhMzg0LThrSFJ3NEowYi9aSVhsMzM4NzFVcDhSVWpJcFlVeFhhdCtTZGpQamtySVo5SlRMUm5Fa3NYUklkajk4bzFTQnkiLDczNTQ4Mzoic2hhMzg0LWVUK081U2lNRDMwK2E2OFdDK0taWlp5eVNBSTNwUlptVXBId0pXR0c1ejdLRU14QkxFcnN5L0FoUDFRbXJZRFYiLDczNjA5NToic2hhMzg0LXJVS2Q1MVM4NmFzbld6MC9JbWE1MFJEWEMxQmw5dnlrVW0zeXNydGFORmRWalB5R0FMWjd4WGFyQi9GNWxPVUYiLDczNjYyOToic2hhMzg0LWxhU2RmbkJMSHZsdUFzVU9OTi8xYTRNUVFkYWZVNlE2ODR4d3VvcHp4VGgvRWpYVlVUMW4rNW9Ib2R1UG1FbkIiLDczNzA5OToic2hhMzg0LTllNHdjTm5JaW9OWGtqTW85QkVHd1JabUVOOHFPQm5hdS9CRVlRWTlXWloxUXVWTDF1dG54aGlWTDhIUm9jbzgiLDczNzUwMDoic2hhMzg0LXlpMnFDcjYyTWs2Q0xEb3UwMElMTXkxUHFZUmVhM3NMMERCaVR4TnV1MXg4WWpCOTByUEFqK3ovc3didHhnejgiLDc0MzA2OToic2hhMzg0LUZGUXdOc2FTM2FlKysxNUk3MHFaZUROYktnWXhTZWJ6ZjNUN2tneThMR0t2aTk3QURNTnNzR28zNG5FYWhodWMiLDc0NDU1NToic2hhMzg0LXEvQWJtRm9zR2NudHA1R2pkWnQ0RWxVa0ZIR2crRUI2d3ZmWlpzMEQ3Ri9kTUt0VW5OSEczbnh2TTEzOWdQLzUiLDc0NzEzNzoic2hhMzg0LXo5aWxMUlJKVnFvb1J2VE90QVNUZ3RKZmJyeGxPWU9oZElwdVhwOTNRcFUxSXJzUVQvaS9ETnFIbklML01WdUciLDc0NzE4NToic2hhMzg0LTFkOUpacjdJbWV3Y0JmMzl2UG1PbXhoN1hvNk5IUGIzWFNSd2lrM0pCaDBpUTcxbUxJRy9LYnU0enRpZ1Q4K2QiLDc0NzIxNjoic2hhMzg0LVM5U1VJZXp3cm44WHhWdmw3bWdhVXJBR081VlhPVUViY0F5SWxwclU1UC9GenBZa1VBSWtpT0hoZS9Sc0JndVEiLDc0ODM1OToic2hhMzg0LUJOMlcxVnBuRWIwSVd1bmkxWVRDQ1d0dEdSSzFrbHl2YW9xdTZBc1M1czBWcFluVmQyd0NvUU1hWnBzWDVqSjEiLDc1MDEwODoic2hhMzg0LW1uVnR3Q1JqSWhPU25JSFRFbG9oeWZCc3F6eWpSbG4zUlNYTXJ6Sy9jbDVLazBXTFFkNW1MakFJbEJkaTM0dTIiLDc1MDI4Mjoic2hhMzg0LWFVY0Nnb3ZGeVAwNy9Ld2hBQjI1Z2hLdCtGeWF0QmxQZTl1dmhmV0tUTlNiVWp5QVhyOTN0Z1pIbHdleEVjTkoiLDc1MTM4Mzoic2hhMzg0LXRqRnJ4bkhjSm8wMDBCdlU2QnozZ0JFMTdxWktxRUc2NFpaTDBvVlBuRHhhLzNUaUZRMjBOQkNQVXdVaVJ6cS8iLDc1MTU3ODoic2hhMzg0LTlhUklsZUlXZE5PMVRzL2ZuKzJSWWZ2N3dWNHFUTXk3aVMzRXFZY1RLbWV4aENDaDVlNHpNSW8xTnE0VS9ydjEiLDc1MjgzNjoic2hhMzg0LVVJQy9HZ2w2Z0RoRXJVQXp1L244NVU1d0FVbzRiMEhudG1DU3BsYmhrNjBBZU55R1pvVVR0RVpZU1ZYd3BMbXEiLDc1MzE0Mzoic2hhMzg0LVJGM0Z1UlU2ZlhBNFRreEJkbkZWOXBwWittKzBQOGZQSERHVlY0VEFLY2RyZGRwMXM0enFPQ3pLRTJJU0xoVFQiLDc1NjI3Mzoic2hhMzg0LWF1c3Raa0prWVovOGpicmdKQW1HczFQbGY4RXhuVjZzZzFOUmdNdVBKOUZsWTlUb0hnYUNwQmlwdzJ3alA4aFEiLDc1NjYwNjoic2hhMzg0LXhUVytBYzRQOHIwTnZUR1VYWTVzSnM2eHBFQTF3c1paWkRlT3FoYlhwWUdIRVlHNUhBMm5FMjdhSVZJeDhDK3YiLDc1NzIxMzoic2hhMzg0LWpaMHZ4TGdybDlNTlcyOGNnSHlFMnBoWFllaTBCYUl4eFBIZVZpNU9ya1NpQnBSQWdxeHdMTWU1ZHRtTlZTZEQiLDc1Nzc0ODoic2hhMzg0LVROYUlQRlZKNnp6MFE1L0FhR1V0L2hMdTQxdU5zQml5Qjh4MzFubnkwVE9GVmIyZlo1TVR0R1NvenpMR3I2bDIiLDc1Nzk5NToic2hhMzg0LS91bFgyb0Rpc0t3MHh3aTdsTGdaa0xFT0t1OGRUREZObmhXaHVZMThZYTJaWkFJSDVLc3d4QU1Db0RsU05ZWEMiLDc1ODM0Nzoic2hhMzg0LVl5T1VBbHRVTENRVzBkZFQxNnhpVDVBWUJqb1ZVVWw4TFhpamdLVGowUlo2Y1BkU1hBRlN6SmN0UERkOGFRTjMiLDc1OTg4OToic2hhMzg0LTZjODd1M2dnQUtheHJzT25BQ1VDZUlMUzVsOUpNVGUrSjk4cnZCelJpNHZKekc2bFU2b1VWVVh2dUJxZjI2VVUiLDc2MDc2Mzoic2hhMzg0LVJsY0w0aWxOTWdPWUtxTWQ1eFNnd05nTkFMeEdVYkY3bURvNEYzMXJLV2ZmNWJmY1hwUERFcVdWdUFUaUJNaW0iLDc2MTQzNDoic2hhMzg0LUltMTBKcUhmMnk0UDk1SzdsWWd4b240WUpzei94UjNqdkZ1cXdxTFUrbDJIRlZEYWgyejN5SnhDTGZqczladlMiLDc2MTk1ODoic2hhMzg0LWRzV3FGd0JHaHdjMnVEQng2VjJwNGwzRFBKUVpSM2dMSHlDRWdBc2xVbVgxM1ozSjVLU0lTUDRrT2czVTBxU1EiLDc2MjcyODoic2hhMzg0LXBWRXZ5ZkhkemMxSmZXcmMzTnJyZUozQjBlTGZsUm1peXN5UHNMZjdTYjJEeUd6NHpVN2lxdzZrSWxHZGxDYngiLDc2Mjk2OToic2hhMzg0LU5wajUrNTUzY0toMDZ1Z1VWTzE1TFFVWlVSTFJhWjFHVE5qUDlwOEIrOUtvZmNQTHBxVm8yVlgrTkxrcnpTMXMiLDc2MzA0Mjoic2hhMzg0LTBKdnc0N1l2ZVhubXJaM0dwN1lkYndJWmpHNUdicjVueHZRelJRQU5VdVg2bmlOdnBucUxLY285K0d4UnNZNFgiLDc2Mzk0ODoic2hhMzg0LS9iWDN5WEFyMUM5MmxxTGxFYVpxb1luTHN5Lzc0TENPRXd3MWFFdW1UMGtPZjl6K3Z6bnErd1hkUzBUSjNxSGUiLDc2NjIwOToic2hhMzg0LVJET1VPYXFCZGFqNnZQMk00WitkMUxJZkw3Z0tTTzZEcWxZOCtFa05lM1VOVlhnenVrczN1SksrdExIVkxvVDUiLDc2NjIzNToic2hhMzg0LTJOcU5xcFVGRnRhSzJ4d2V1Ym1BQmN1WTVwdTJwRDRPdzFkTmxQS2lVS3BPaitSbVRXODN4akVzNWFDVllGcnAiLDc2NjQ4MToic2hhMzg0LUhSS2FPZGJ3bDRuYUtUNWswdnh3NkVHdE1qQTlSUThJaFdtcEJZWmdNZVhXalhTZjNkaGZUTzRoSW1EbzFZTGoiLDc2NjkzOToic2hhMzg0LWRydkdZMmRVQUpNMldLdlRCbjlpNGpEUXk4MDNkWElqZWxEUHEwTHRBa002TFFyTW8zVnJKUXRPdGlqaVB2SHciLDc2Nzc0OToic2hhMzg0LUxmT3NMZjkyeFMrdzNkVjJ6SE8rZHlIdVdvdWdiWUs3VTM5Vzd4RmdGcmc5cDJBUVlnd0krL1hNc3NJNWZnVWciLDc2ODM5NDoic2hhMzg0LXo5c0hrcStQeExyaVB1RjJORWdvRzdNeDcrMy9ucENzTVNub2VYZkFrK2Y2d1lOcU1ZL1VXWDFiQWRxS3BNaGEiLDc2OTcwMToic2hhMzg0LWNDQUZra002anpPbDNzRlMzQU54d2JEVVFCQVhVenlwZThqVHp0cEM5MHlPbGdQbTRHNTlTTnBEQjU5RGh0dlIiLDc3MDQ3NDoic2hhMzg0LXVkV3h5RzZMWFIvbnNGby9mR2lZZGpZWW9lbThLSVBQb2phTjZrMGw5bDEyTE5KM2hVV3BZelljeDh3eFFXNG4iLDc3MTE3Mjoic2hhMzg0LXF3Z1dkam50QklML2lzc2ppc3RtMjJ6WktvZ0JHU2VPRjhNVnhtUTJ6S09jZ2pRV0tSbFFuSGgwcGkvalhPK2IiLDc3MjUwNjoic2hhMzg0LWFIMi9TTkNjUi8zTSsrZGV2akVEY0FxSDdoamppZGozb2dUbnBpNmZKUnNCY3RFaHJMSjEzWU96Zms2Vjc3aUUiLDc3MzI5OToic2hhMzg0LUlYYTVteHQ1OFNRZS9HcE9tOWgzY0xzN1R3M1o5WGtnanhnOXZKcC9PZ3BNdFBsdmtzaFc2ZC9xYk5oc3RicXIiLDc3NTQ4Mjoic2hhMzg0LXVVNktPOWh2ZWRXOStpQ2pVOUNQUTJsVmVFRVZMTjRiS1I1QXg0cGV1ZlQzMVIyVUFYQzVQWmNYamRLbnJRNTciLDc3NjIxNDoic2hhMzg0LVJFSTUrc3ZlVVZFV0dNaG5pUmFYVzdEbVR5djZGemc5UGxHcDkrVUxJNCsyRlNlTzhTRThOTzlrZTd1MVJ1a3EiLDc3Njk3Mjoic2hhMzg0LTJacmN2a1lVTWk1ZStGNm1WZ0lrU3h2Z3JQUFlNZXRvODZqRkdsSm9WaXljMTk4eTVlcm1RZU1VcjlVYnFQYWQiLDc3NzA2NDoic2hhMzg0LW9uWS9xZkl0c2pTZHUyMU5RckN4QzllRnlnUklkV3h2bjA0QkQ5bFJ6Rk1NZ3g1YWl2a01DZzlwRGJSK1hUaC8iLDc3NzM0Njoic2hhMzg0LWRoTFBjUC82amFxbmRFRFQ5Y1lqQ1hZakVVeEVCY3RrRmk3aHZxNzAraEQzUm9HeGU2V1hJbVQvK21IN3QzREciLDc3ODI1NDoic2hhMzg0LUpzb2NSRnQxM3pwZmV2QWV0V0ZCSWRDeFdYdFhmRzNFK0lNUEVlcCtOa1hSUGlYM0cxZGlQaWthVlFzZCtxYXEiLDc3ODczMjoic2hhMzg0LXlPbEIrMHJKaWdkVGFYVnlNSG1OTkw2UEJVL0hMRFo0czZ3SHF2UlZ0TlYwRUI1NmtTK1JWbTJLcWRFWUVKbCsiLDc4MDMzODoic2hhMzg0LWhya0JjcVNyNmdHeUhnSCtpa1VmQi9CNlRxY2FLUCs4c1VIdzEwbDYrdm1UYXAra1BOck1EWCs3TFFZSGlSMWwiLDc4MDQ2OToic2hhMzg0LVY0eDVVcUhxL0pZRFYrVDdmamVLb2pibWdIajFaT3NUa0JWVFFpeG5iYWEwNENDczhWcTJ0ZGczak9SVG9QeHciLDc4MTEzNToic2hhMzg0LU5DT0lkZXlRNkhyTW1oUnl5YlVjNWx0bG1YZExkRmQwNU9lNDZhaENPREo2d2swOElDdUZYeEtlS0JTZUJ2YXMiLDc4MTM1Mzoic2hhMzg0LWxNaHQzL08vTDg0SmdBajE4dVB0UkRzZytjaVNLWmNNZENPNk9USWFvRGs2Mi9PTEtUT3RheHJDRzlpNUJHTGEiLDc4MjI0NToic2hhMzg0LTdRNlplVU1JdjBJMGxlL0dXWmVzakozdlYyblZlMG5OTkp1Zjc0SFZHc0JlMnRGSE1QZnVULzM4OXREMkNhZ1MiLDc4NDA0MDoic2hhMzg0LU1qU2tzNkZoMG5DOEdwVDdrM1ZUZWJndkxzR2d6V1NGTUJCVkhScTAxdEQzVmpRa0lHUHl5eG9kOS9EdWs5KzMiLDc4NDg5NToic2hhMzg0LUJNaEIyK2Fnc0Q5NkhsOHByRFVFK3ltUFZPWUI5YnFVSnc1bG1seXhJMEFxQnBJZ3dnSHdtTkhoM2hhTCtqYk4iLDc4NTQ5NToic2hhMzg0LXBpdGVBUlhtUXV4SEhXRUN5RnZnLy9vellzVy9BK3R2L3Z1NitkSjB0azd1YXFUT09ZY2pENGIySWN2eVRWNkYiLDc4NTcwNDoic2hhMzg0LWtGR1dVbmN0Z1oxbDZhYklWeEhYRHVrWjR2SjQzMmVyKzEzTHlVdGdGQWcrdFNEQ2hGdEtWdWtLREdwN2VNTFYiLDc4NjE3Nzoic2hhMzg0LWxXQTBUMWVFaTRXclFWTkdWMEpYYjdqU0VPTW81YXErRUl0dmRiRUdOc3Z5R3A5eGU5UisrZEZDRlE5TXdIajYiLDc4NjIwOToic2hhMzg0LUZjUlFXbWpRTklJNDNYaEs3R3lpejRheFFCSFBqNURiS0pqclJJYmZvTlN6aURSNGZIelF6M3NaWS9jV2QzTnciLDc4ODI2Njoic2hhMzg0LVluZGVIdGVWeGQvNUFGUXlXVlh5U1J0NFcyY29tZG9tVUkzVXVieFBNc0IvQ2JnN2VkOVVaUTZpbGh2eUI0WVgiLDc4ODkyODoic2hhMzg0LW1yRFgyd09rOEwxMTF2VHlYTitiUjAzODY1K2dubTFpZzdlNmRpdjJLS2dmMlplSDgvZEk2Nm5VN0d0QnVsTEQiLDc4OTk0Nzoic2hhMzg0LUwvVzFSV1lZNVUxZUtsUTd4ZVFDbnJOS1Exd0ZiMzhRaklhalFxaitrSi9HL0hJbFBYUXlFclYyRmVpWTdyVkoiLDc5MTQwNzoic2hhMzg0LVRyS1BBV1M1bGc3MVR4TXJaMlZmVEVPOXZqQmE1cTFxQjhHYVZwd2JyY1d4NUZ3RW9kQS9zbDhiOG5qcURDZ0EiLDc5MTU2Njoic2hhMzg0LU5LcHNTOGc5Q0pqL0Jua0xoR1dLZk9kSkpCY2J5MkRqaVBERVNWS21BbUJTK0F4ZlMyRXJwVmYrZnU3T1VLbVYiLDc5MjM2Mjoic2hhMzg0LXc5cm4yaHlhS0thSHlpZitXanJ4cnRWSTdBQ3N1Znhldnhnb2J5Tlg2MUVJMGZPT2czMW1IdkFzR0pZYWRVZ1AiLDc5MzI5Njoic2hhMzg0LVVTYlBRSndPZ0JiNG5jTzROMkhkUkVOaVI2VDdQaW9qQXBuQUYyNmRXTzBUdjFIZ0lnV083TUloUVZWQktLVVkiLDc5MzY4OToic2hhMzg0LXpZOVh0Z01aTWpUZ2N2M1BJNGRkT3ZrcXloZGcrVjY5K1FNWTNnOGlwcElxUmtsek1HUHVjRFZZM2NjbU5iVVMiLDc5NDUxNDoic2hhMzg0LUtZbUtuaXFaQUtRcHZGNkMwV3pRbHBKYkxKT29mUU1qYVdjVlRWbExjNEJRREZVM2RvUldxR1BuTUtnQUlsN0QiLDc5NTcxNjoic2hhMzg0LTN0NE9HbVZkRElGaWRkWklzeTJoQWZjekRyaExyMFMvN2wxOXJoS2ZIZktxSDIvR3N0L3NhbmV4c3h5WXZWbTEiLDc5NTgzODoic2hhMzg0LVdoWkYvSjF2ZTdrM2kwM2JzVXpSSFMvdDdnSFpTbXEreHJqdnhPSXNvWXl2aTN0SGZ4QkRHc2lycGFrREkrRGkiLDc5NTg3NToic2hhMzg0LXB0SVIwZk85R1Z1UWJvRW1ZWVpQNFFlU2dqVzBOL0d3K1E2QmZ6anl3ZnRvUUZobDRoZllvWkRmSzIyQzZNelgiLDc5NjY2MDoic2hhMzg0LTBkWGZNYVJlVTV5TlBPb2thbmN6bXlZTjR6Zjg3QkdlK29rbDlVdmhRejBSTng5MkQxa0xGTDcyelVWZVMrMGoiLDc5NzYxNDoic2hhMzg0LWdhOCtDdVRGWkZRR0pGekZjNUdQcnBsT21MdmxSNzlYY3ptQlZKaGdRWDlNQzE0Qk80SzNaVzdLN2Eyek9pOWsiLDc5ODkxMzoic2hhMzg0LTlESlNDYVU2SWZKVWp0bUpzZFBuOHNkd1RHOUlpZXhDaDhFVEpHRDliWTZMOHliNDcxYTY1djNFRVFHc0NFcUQiLDgwMTA2ODoic2hhMzg0LWFDNzFaZzVZS0FSZjEySkxjNTlrSFJhRXFGbUwxUExGYXBIVWl2M1ljQmIrZ2NwNDREazBSb0JzWTZobCtRb28iLDgwMTk5ODoic2hhMzg0LUVFemhocXl6eHZGYlBXUkE4c0k3ckg4UjVEeDA4VUY1RXdjVzF6Y01EN1g1UGl3WXE1Y0k5UEpEeVlLQStKa2QiLDgwMzE0OToic2hhMzg0LURKK0JjeTBvRVUzc3NWb2Vlc094enVwTHhSV1dlWVdJbzVUSkhyRWpqSVFaSlFvcUNPZ3JUT0JFdHdPZjZaYnAiLDgwNDM1OToic2hhMzg0LUZEZ2tEclltVWk0NVJJdXFQRHBPVjdNTUNnUk81NVhHb1Jsa3VPQy91MFJoSXh5WkNNREZxTXp3UmdZVTVnamciLDgwNjYzMjoic2hhMzg0LWZpVUgrZC9jZXBxVHZIWVNDYlllSHRxVEZ4MUhxRVR3aW45Qkphd0ZDWnphcVZWOXBHVkZ4L2VtNjFUQjhWNmoiLDgwNzE1NToic2hhMzg0LUlta0Nkd1hSMW5XQy9CZk1GOUUrenhVWVRQTWZFSExiUmVPVFAxVHlnOFY3blU1d0hCNk1OR2pUNnVaUE1OZHMiLDgwNzQwMjoic2hhMzg0LVdKUkNFT0pXbzFieUJrMkw3aHBocXY5eUVQTHk5Y05NejVsenhuNUFWWG5zckQwR3cxM0dadUlzeFlXajNpcVIiLDgwNzUxODoic2hhMzg0LW9qT3JPQkdzaW53dEtvYnBQTTRUQTNLME1FaGZTUzUwbHNYSTZDVEFXVVJIam9xY3RZaHozTDJEdUJLKytmeW8iLDgwODc0MDoic2hhMzg0LWF4bWxyQjNyY0Z6UzhTNjJROHZDSThMazR6d2g1OEoxcG11T1FmdTVJTmd6UTdZTlYrNnNCZlZwcENsMlFBOEYiLDgwOTgxODoic2hhMzg0LXVmcDk5VHRVdzlnaSs2MjlYLzRUSW9tRURSdklkRDlJT0JETVllMHVsWit1dTdyS2dMdUVCeTJZd3pQZ3g1MUsiLDgxNDE5NToic2hhMzg0LVp2bExEY3lYdGZIVFdHb0ZuTGdQcXl5UTAwdVZUS1diQUZVYkhocXNISmRPekdWUGhSQmQwU2Q4cTdSUEpkcW4iLDgxNzE2ODoic2hhMzg0LU0wTzFNWmJ2UW4vcFVLdmxoMXZTWUh1MUdFM2ZYZ3lDY0gwamk3UFBCd21uSXJVTXpSVDRDalBTcTlCdDY5ckYiLDgxNzI0ODoic2hhMzg0LU9EUWRSTjA4Qmp2eTNLZDhUZlN2bVhGNjZBdWFQT1UxWlBiMHVBZjQ0Y29HRi94QWNWZGx6eGprWlpMeUhGV1AiLDgxODgzNDoic2hhMzg0LUdBcjllMHlxNEhXK0ozZXJPT2U5QmRZN0o3MlluaE1KYWJseDkxNlFUR0h6aE8rb3RVT0dTTXVqQ3ZVeU0yQVQiLDgxOTkxMDoic2hhMzg0LW5FTGI3Q2wrcy9TazNRcWtGUkRHS0FMWStQbnA1KzZzaG9GSEFYeXlKS2p0dlhYdDNDVjVhcFNwaHhGMytGUGMiLDgyMDAyMToic2hhMzg0LW5YSE9iSzQvM1NFdm5xV21hd2hWQU12Q3VBOW80K29LNnB3N1VEWkZPS2tBQ3RMdExkaXRMa29JQ3VVaGRReFIiLDgyMTAxODoic2hhMzg0LWNxeS9Ga2h6N01idjd2VTloeGNlOW5GbnhNUHlTbStvdWFETlVWeXdjT0s3YXExdnNqMlY0TGR5Yk8zWll6N0kiLDgyMjc3Mjoic2hhMzg0LTVCaStxakVGRGFTUFJGOG1sOHVSVlp0ZGs4cTBheUVvbElNSXZIUTdDd3VCOUJvc3BtbzAzWGJpZWJsLzJwM00iLDgyMzE1Nzoic2hhMzg0LW4wWVB0K0FCaUE1dS93cnpiUGkvWERlTXRPWWoyRFdldnZjU1BHSmRMNkFyNlZsekMyVTA2aXNpWEcreUtlaXgiLDgyMzQ1NToic2hhMzg0LUwxaXBzUS9RYzEyZGxYanZ1aG9QeXpxME5sZGcvV0J3OVJIbzVxZldPdUJIMW5peHJ1SzQ5NmNyN3IxRU5vVEIiLDgyMzcwMzoic2hhMzg0LU1UWVQyaUNZN2tVWnZoZkRSem9IaUIvRzZqU1k1b3ZoUXNRSFlWTFVwVE4xczlVRTBuUzZNL3Z0d0ErNDlQajgiLDgyNjA1ODoic2hhMzg0LTFjbmRhWVF3U1c0ekwvcWgrdWprQ01ZWnpTOXZnZXRxUHFMRFBsRVdvd3NHMXV0T3RIM2hoUHBFeG5oZlZPMXQiLDgyNjYwMToic2hhMzg0LXBXS1RMbWxmUDBaaEdGUVZpNXlHRDFLblRTUGZPSHM4YUV4enFlMW5JSVRpcHNkbStBWjRQOWtjMHRJZHNieUMiLDgyNzY3MDoic2hhMzg0LUZGOWpXTGxvNEdPMnlGNEFJOEo5SytnK0hhTklYMkhudjdQaGFCMHpBbDQ1OGlsU1o5Y0Q0dWdJRW8rM2lqTkwiLDgyNzc2NToic2hhMzg0LUVxcUFEVjNnY1J3Y3Arb29YWWp0TGxqdGRBU24vR0xLd0FtMHc0Rk1ycmhaZ1ExOVJBdDZKUzRJa1JJNjZURDUiLDgyOTg2OToic2hhMzg0LUJzenJZeTdHMElEQ0Vab1BGSmQwRWlnS0NaQ3ZrcEdoNVB0M1h1Sk9UUzFGYWpEM0s5RkFwOEdjaGs5SlpoSnoiLDgzMDgyNzoic2hhMzg0LTdJbzZOdjY3NHBmdGZiN1dXOUltWG8yaTJUaHhJcUlFazNMTzlHV05Lc3FSdmpBYXp2U3pRZVFjdkRwZXd4TnAiLDgzMDg3MDoic2hhMzg0LTlCUHljWjRnOHpBSE5ocHRMd2lON0xGdDA1d0xvMmNnVzg2b2ZwdzRSeVBzaDU4L2tUWmg2ekhMdUtBb1VpcE0iLDgzMTQ0Mzoic2hhMzg0LWx1RG93NG83bjN1dlBUVUdMZXlNSGFPeXRsMXJIVzhrblcralVxbVhJOE95R0N5ZVQ2em5OcDZ5L1ZJUGpjeTciLDgzNDI3MToic2hhMzg0LUJqQ1RWeWs1bXNGM3V1MWRrbXVRNHU3UERUY2Q1cDJ4bzdQRmViUmNFbkhENlpjMWk0OVdHbnl5QSt5eDFmOWwiLDgzNjk3Njoic2hhMzg0LXVDRXVqWlNyZFZpa3R3WXlUTVZPdDFDVmh5N2NRVkQ5QXR4SVdJTVFtOHYra2tXeDhFRXhPdnplMXY2b0duRjUiLDgzNzA1Njoic2hhMzg0LXFHb2k3cmY2ckpGbmp4QU82QUF4c2hCRW5rNTZGN0NWM0ViOE1zeExlUmpBY0JDc2s3YjQxTFg5aElVL1N0ZWgiLDgzNzM2Njoic2hhMzg0LVZIQ3hMbTJ5bE1VSnlsTDBLcTB2aGhZQkJxdHJ5R2Zncy9acVgwRHZGYUUraHN2U0x6U05ON2RUcGxhRXIybmQiLDgzNzkxMzoic2hhMzg0LU9VNzJzV1ltemRITHJsZE56VWFBU2ZnME5ucXdWOFNCQmcwZ05Gd3VIUm5YYTZOUE9iNE5lLzd6ZjJVN3paeGEiLDgzODMxMToic2hhMzg0LUVVblUyaTYwV2Y0VGdoSi85dmFnVEpBN3gyV3Zjc2IyK1ljWGNmMEpJckFzSUtxQzczdXgxSWd1ZzZaVHJyN2kiLDg0MDc2NToic2hhMzg0LWp5MVVlWEdmM05xRlpyRjVuc1p2clU5c0l4Y0lXVU1oUm1NbkZ6N3ovdFVZOTY2ZFUrSUZOK0M5VFZRTnhJVVEiLDg0NTM2ODoic2hhMzg0LTdhMUhYb04wQnVQb3R0NHNKNVlldjcwblJMOWR1SG1lNTFYSWFpOXNtbnY4UGZVT1ZBdzZ1d3hhT2JqMDRhbDUiLDg0NzA3Mzoic2hhMzg0LUx0elFWdUE4NUtGY2l4M2hzTGR5VE9DaFVKOVhCMUJYb29SYlJxWEYwNk1JVFBnc2NFVXdMYTF6a3Z1dnNHQXgiLDg0NzQ5Mzoic2hhMzg0LTFMMyt4RnJ2d3RTbUQxYXhlVllyaWwydlY2eXgxZ0paMjBPS3RQaWtHbk1HQklrbnVGZ0FrRitrcE90NjlML2MiLDg0OTYzMjoic2hhMzg0LWxPRUZTellvN2Y2WllwTGZhd2FTRHgwdmtob3J0Vllvb1AwUEVDbkdrYXkzMWNlQlBidy9IL1FNd2xkVkVoRHYiLDg1MDU0Njoic2hhMzg0LTNuNzdhaTkyZXV0UVl5WkRaKzJ1UGZ4VWNndG9mdFRJZjNLYTdkVDV0QzJNQ05xcFZDZDBHZ3hheDJrbEx5RG0iLDg1MTc1Njoic2hhMzg0LVpTMDFVRFBIUFNaUHJQenBQbnpCTnRuVDBkWmZCNHc0QXE4WEpDeW55Z2lvMDQ4b3h4MXVLOXNncko4ME5CWEYiLDg1MjkyNjoic2hhMzg0LTBmL0FzVXpBODNpMjg2dTVha1pmU0FweG9US0VpaERQZ0Z4NVlmTVNVeWc4U3VndWNQZHdyblhQTjBVdlVvL1giLDg1MzIwMjoic2hhMzg0LXFMWXBQK2RVU01TMjNDWktrcFhyRWtyRU90UmJsMThaZjlMV0VJU3o2eWQraUcwelVqRUFYVGJtSE12b2xLYkwiLDg1NDU1NToic2hhMzg0LUVaSTBIaEVsd1Npa052YzFFUW5WeVNZUlhNR2NaUWpHdHdnRkErTEV2ajFtaEJ1SUR2L1doenFmNXk0N3lRcnUiLDg1NTk3OToic2hhMzg0LU1qUmcxMnc1Q1Y3ZHFNVjh3QlBhMzZwUVV3TldBZStLdDdMT2N5OXVpT1Z1T0JHbU1kT2d3ZVdHL0VaSEFtV0YiLDg1NjY5NToic2hhMzg0LXpJNzIzNldmQ29Qd2ZGeG9ObHMyTjdGNjBFQXgzTy9peEdYVnFSampGTEpMS3pacWhNeFVtN3NsdEd5U1gzZTAiLDg1Njc4NToic2hhMzg0LW5rS1JNSE5sMXFJT01FS1AvNVhub0tRYXhlYUtqMU1iUEUrUjhZYnMxczZCbHRzVUtkZlJ3RmZObDEwMncrYnUiLDg1OTEwOToic2hhMzg0LVh6RVF0dEhBNGJEUkZ5VmlZTWt6MjhuaUhCbDVnSk1Md2xRNVlWbzhrMXdya3ZSUlBicm1yeitndHVZYkZyMDgiLDg1OTU1Mjoic2hhMzg0LXdMTlRrYmtMRHMralVTUUpYSDhEZVRUY0wyM0tkQkVFT3ZrWUxrR1I2aDVnNnpVZGlMeStSUEtQUElWNDZSRUQiLDg2MDk2NToic2hhMzg0LTZKZTJGTGhrbWdZSDQ4RVpPMXh5bFpMcDZyKzN3UzhJZjlVajlQajVqVm01SStaaUZKUXExaWZZMVQ2M3RmQnciLDg2MjE4Njoic2hhMzg0LS9BcGF1eVJ5N0xaMEVvT2hheFF6RXoyUWo5Z0o4d3ZnN3pDdWMrcXBjRmU3N3BTbVFiVFI1QnBtaktUalVZUGoiLDg2MjU0NToic2hhMzg0LU1OZ2YvY3NtQTc1ZHM1Y0t4c2gzR1B5TExqTFNKb0UxeWpLVjRHTE9pdkJqQWhrMTNESVVsZHl2Y2I2OVp5YUQiLDg2MjYwMDoic2hhMzg0LUdEOTBLdTkxZ3VCcFpER21WOWNTeDdCTHA0dFl0cVo4WXJUSU8ydXBJSFBJQ3BHQ2ZyWVk2QmtYN01yYytwb0oiLDg2NDMzODoic2hhMzg0LTdmQmFSckIycklwUFJ0Y3JFc2VlVnRIaGN3ellZRk9LVExyTm4wQmRpMzRYQ0xIdEN1cS85NXM5MDVOL2xMQlciLDg2NDU2Nzoic2hhMzg0LWxTb2NhVXhFR0F5TFFGM29ueDhLaEJXVlNwTWtsbkVyeFVYT05FS21tV0g3dXhHVkNPRjhiTnRFaDFhRGtaUUwiLDg2NDk2Mjoic2hhMzg0LWpES1VNU0g5TlJTUlBReUVCSTVzZGJsU0dueDNxK1o4bXRTZ293RnRZWTJOWXV6d2xCR04rRHZXT1FqYVQ1N1ciLDg2NDk4NToic2hhMzg0LWNNUjNjU0lwckFPL0NGRGNydjlGVER1bDlUdjRrQVpzNXhMUWRSZmhhUi8yQzFNU2E5U211OFRzWXVPNE5XV04iLDg2NTAyMzoic2hhMzg0LU1oN1RlM1dZOEtGK2NJU2hYaWY4ZVg1S2ZQVUtqb29ka2pUVDBUeDhLMWM1bVpsbmFkSVIzaXJyc3dZUHJqR0ciLDg2NjY4OToic2hhMzg0LTZ4eEtRelhsKzc0QUJ0YnY5SmtSaW9FYzFIM1RhSjcvTlpYcjFvVkV2WmJzdm9DTWdLOVZvODVRSFhLZWVmTmoiLDg2NzU4Nzoic2hhMzg0LUh4T1JlaCsyU1hhRXpSbGhaa0ZnUmhOUU5QS2lLLzBybC9GSmdyajNReUtwN3Nkcm55eDZVVitjK1A4UzhZWWciLDg2NzkzMToic2hhMzg0LThDMGdFUjM0Q0ZERlk4dEFlT3RRcmhnQlE4OFkwUjZadFZqaFdYTlhRSjcreDZDNDhpdDlRNDhlZHUwZ29RaUwiLDg2ODM2Mzoic2hhMzg0LTVqbjJQaDlnRWlyNnVKMSttdW16SVBnSkxyMlNBaUdhN3R6aFVtOG1uNnEzWC9LRFU2dDRPWEJ6Q29TVlNDQWYiLDg2OTY2MToic2hhMzg0LU9QRDdmNkRQVnV3QTd0M3BtSU1tYWZQWENUQUNSNk91ZkpvYXpwWG51RVdHZEhIVWpNWG5rRDBnclRHdXBUczAiLDg2OTk4Njoic2hhMzg0LS95Zy9VMlIwTHFKOG8wd3FucmlVTXR2YXk5NDZmcjBkamY5T1d5dEhKcWJMVkhYa0Ntc25XaVhaODRkMndYSTciLDg3MDE4Nzoic2hhMzg0LW9KaXNvVHl6WDd6U2JHUzBpcXNKaUQyVWxQQW9QTUN2ZGJZK0QwN1pWc3NnV0NUM2RqOUsrYVZ6czBXSVliUGgiLDg3NDI5Mzoic2hhMzg0LW5CRThVdnZyZVEvWG9iOTlMS3pWZThoNDcrN1JkazdOSjArWTI5QWFJY205dE4yTFdwU2hLZ0svVnQ5bEF5eCsiLDg3NjY2Mjoic2hhMzg0LXdHN3A5SkNhTm91VzVFUTRERzZWTitRUlArZndUaVhTcmtEcy9YN0JKNVYxOXh2cHlKWkZFZkZrdDNBd05xSmkiLDg4MDEzNjoic2hhMzg0LU5ocHZ5WE9XRzVKbTJUUHU3WlM5VGlESS8vQ0RVSlNaSDBYbklSaW43SUhZQzNLR3NXSmNYTXB5N3dIeFdLTFkiLDg4MjI3MDoic2hhMzg0LWlnQWF6b3NIenZHUHI2aGJmd2FHYlpNV0MvVStRdVNFNkpVOGg2VEFnSDdUNnhKQWxRNnpidm53ZFNoSGVLd0QiLDg4NDA1OToic2hhMzg0LUlnTDdIZGYyTTVVc2tOYXdUUUxPOFQxaTgrNlJ6UVZOYS9kNVhadWFybEJGYTduck5DSVczSFlsZjRJdHBLMTciLDg4NDY4OToic2hhMzg0LUkyTGtWVDBZaVJDQ2VoeHJHeFZBNElKY1NCbmsvL2l5eThnL0tud0o3aEpYalJ0cTgzL3drS1RSaStqWUVLOEciLDg4NTE1ODoic2hhMzg0LVFWelRnaXdKd256NVF4TGJwRDNzZ1hwMXE0alNOYlZJVm5JNGc1Tk1nNG03ajJOaFIzdGxhNUdHVUZPcDJURFEiLDg4NTQ4NToic2hhMzg0LTN5RnZWY3VXbi9IWnh2d2lIcDVDekczTlhvcThWWkhDOXkvNWsvNHY2OGNOdmpISmlid0NjZ3gyS0JoYVNqMVYiLDg4NzA2NToic2hhMzg0LTBrc01SdlFiVThhOUJlaXBQYjlXZTZnQXNDS0ZKUSs5bEVrcG4wdFRZVDc4YkJYM0VxTE0zUmRhK1RidTl3eS8iLDg4OTEzMDoic2hhMzg0LWJDYTVyOFc5cVprR2JUK2RpTk8wWHBvVXIwamRZVS96eEZFWHk3WGdkN0Yyb1oxMGtCakpqMmgrVGd6cGhMaVciLDg4OTE2NDoic2hhMzg0LXVNREJJTmhZOG9veGhXeGhmZEo1ZkhlYnI1OGhZbnRTa29lZnZFcFhTVHhHeVFVNnF6SndpOGVRSEpqQ1ZES3YiLDg5MDkzMzoic2hhMzg0LWphRVhnUEdoZEtjNVdkdlZON21mdTcrNmRMUGc4T1FJRFl2MmNMWXVpY05PZUJ0QlFMN0d2dnZIUnZxVW9YU0giLDg5MDk0MDoic2hhMzg0LWM5dTJUNzYzUnR3S2RCS1FjZm15dUZTM1Btd0hjbnVnQWhsNExkRXFBaFNHMk01MWRwY25LMDZ0dVFnNXN3c1kiLDg5MTQ4MToic2hhMzg0LUd4N3BtYjRRZGJ6U3Zqa0JJMEczTnJtMEx4QVBWenVEUUR0ZCs5VFhlQ1pOd3RpWWpxL1BsM3ljVzdzUExkbDIiLDg5MTUwMDoic2hhMzg0LVVXVFkvbVA1bkV3RGNZRWRSeXlLU0ZGczNWakFkd0hYeWZ1WUNRTXptRUdSK3psSzd4b2JEeWZyV2l2dkF1clYiLDg5MTY4Njoic2hhMzg0LUg5SWZMWERZdjBVRHdXVHlwR29PQWI2QjNjSmVFa0lFOUZ3WHZuYjRVOEYrbGFSNzBZRnRUaFlFaEN6ODlYaXkiLDg5MjI2MToic2hhMzg0LWU5RXhGMldBYUZhNXRmbnZCQndiSnBJK084eWNNK1czRzZiRlk4eG05TE02cU5LUTBIZHdVSm5IODZHUFJjNk8iLDg5MjkyMToic2hhMzg0LXduQUpLVHVJUG9xQlJpb253aVcyWmV5Q3IrSis1c1pVUUVSSmJUN3VXMENVMzlJNGowc3UzalYzUXBGVThrQnciLDg5MzAwOToic2hhMzg0LVAvbEpVWDJkbm05N29kVytaQk9mTXBXY2RVeHFXcHBYL25iY3hiTDZRZkdFVzR5TjBCaHlFVW5zNWRQdm1BYjIiLDg5MzI0Njoic2hhMzg0LWpNbjRLdVVrWkdRT0tmVjUrZFcxSjZ0SitaUXIyVnpWUitabW51emxwekg4bVdCRGFHaCtyQ2wyRU9rUUUxYXYiLDg5MzUxNDoic2hhMzg0LTlwaWY2N3NnY1hwNHoyZXQwaklwUnNvNG1CTmV0U3U3SWZseml4YVFMMDArQTdlVlZwT0hqL3F4b1gvcldyTUkiLDg5NTE0Mjoic2hhMzg0LU94ejk1Vk5lYXVZUDBmUTJMSjM0TU85ZW12SjZFa1pYdk1MQ0dGZ0ZQS1hhdy9WOVN0TGRGMVE1Uk44dGVlczgiLDg5NzA4Mzoic2hhMzg0LURIc2pKWmc5Vk1NL01zaFBSeGhueTZkK05qdmlVU1dMM2FGRGtKWnV6T2ljMFZUNFdoT3NZaHZyUU5xNEYyYnoiLDg5NzU3Nzoic2hhMzg0LVhEa3p2WElQa1M2WkNET2ZvNXBxbXptMzJxQ2dOVUdGdUppWGNnU1o4MmlkUGNDb1VaZU43NGNUeFJzS2NucmoiLDg5ODcxMDoic2hhMzg0LUVDNUpFak5xa1ZQSVU1TW43cWRUZ2J2bUtzSlplOVBTdFpVeUcxa1pHbWU1NzBzRjVtSXVjZSs2ZlU1WW1OUm0iLDg5OTUzNjoic2hhMzg0LVZ3OXdOZmRnb3RmWERTWGFVVU4wUnR0YjVBRFlpT1NVS2c5K3FSdU1TaUtqRkMrMlk4dmhaWG5oQmU5TE80YlUiLDg5OTg0OToic2hhMzg0LWczQ25aYlZ1aUJJT1VXeFVjQnJlUVlYU1lSaE9NdnhCbk1adXg1OXpsa2pRbFVoclZYV25ENUplNUoza1ZqOEkiLDkwMDk4MDoic2hhMzg0LWhXWDBvQ05iaW1JdTB1eFRENXdyMzBDR1VTMHJPVEMvSS9oMG90dXR5bWY5TTBEaERaMWRRd2lmTWNuam12SDMiLDkwMTU1Nzoic2hhMzg0LWlEQXZ1bVFYQ0w1VE5uNDhXekZXWFZpZjdwbXJDMnBwS1B6bVJ4QkVhcnMwSllXaE9YUkdZN3NaNVpLQU1TMEciLDkwMjcyNjoic2hhMzg0LXpoR3Q5TnJGaWt6TnNlVG40U3ZmV3JMblAzblNNdURzeDc0b3U1THZFaTJxZTZ0bGlkZzlHTVdIaHlSbS9teUoiLDkwMzY1MDoic2hhMzg0LWJWNm0xQTVZN0E2RXVtdnRiRis2S3JHcXhnVFljYUlPbmF1MnpjcVNGRnd2a2xtR2h6cEYwZFdrTGljUHBVaEwiLDkwMzcxNjoic2hhMzg0LVk5VGZTbmU2aUZVNkdNVTRZZklpTkU4Q2JkWTRYbUluSFByeEN5OTF4OHdjVkc4aVRWaFl4RWR2dDh2SU9JNUwiLDkwNDY2ODoic2hhMzg0LTBtRnRnR2hBUlMxUXNRWDFnVHROL1dva3FodE5hNTlsM3h0Zmh1cnljWHNPRXRadndid3dTRFNGMVhnNkdEUmwiLDkwNDY2OToic2hhMzg0LTZmS3N3aFlDNlVJQ3FlWXhRSWtMNEtKaDV3OGVMa0FXRU9sNVhud1ZCU0JFeEJrUUtnUkxXa3ozRlptVzFnZWYiLDkwNjAxMDoic2hhMzg0LVpaM3RISzI3KzUyUjBRMHNHWnR0cDN4SjJ4Z2NTekpydjFkSEFrQUZqa0NlOGEyWjBiUU1yMnJiOWYzU0hjSkEiLDkwNjU3Nzoic2hhMzg0LUkrVnpRZG9vMGpnSHF2cnBWb3VNUllCbjhyNkpaVHArU0hYUCt4dTIzLzBCTlZXcEwrOGhKTW5GTmVWWXpBQlUiLDkwNzU1NDoic2hhMzg0LXNGbEJxOGs2bWtoYUYvVFFXTzJCclNEZmZMcWh5SHNvTmduN05ibHZRZUV4eGhzZTZXNHVJSDhZSk8yTWxNQmIiLDkwODMwMzoic2hhMzg0LU1MdDdvWXg3UEw5T3NCd0IyMWpJRWpRU1d4T2JLRkNvUml2ZlJHUjJFbmF1RWdMRTUrdHRIUjhFZTBKSHhveHQiLDkwODQ5ODoic2hhMzg0LW5XU2VVa0F4Y0xKcDJ0L3VNejQ5eWJUTVNBNjhFUEZWRm4rZmtWWWpOeDIwc1BMc05sOGlRQXpXNGNRREZpMHMiLDkwOTUwODoic2hhMzg0LXdwb2psMzNRb3NjQnVadk9aWlg4aHU3WG9zdTFVS0ErTGJMUnVwSkRpTER0QWJOUjdwOEs3OHVOcGZtdFlsMnAiLDkxMDg3NDoic2hhMzg0LWNPNVU0Zzc3WU1rUW81UHNzcUd5aVVvVkhwTFFWL3ZMeHR1Z0taZWF4eUQvT2JNRGJtUHd0RFJ4RERVQ0Z5TU8iLDkxMTUxNjoic2hhMzg0LWJlbmRmaWN6TWo5ZUJEd2ZMOUJHRVZZSFNENEJLQlVlMy8wVUR2WVlKcWltUVNiWWpYNExVZnUwMDFTbzk0WDMiLDkxMjY1NDoic2hhMzg0LVhmVWZidHpDUHNxSC8yc0VPZkIremVZc3NGTUtnbTNwekoyWG9sd3R5WFpnSzVJeFpQWkJ0d3N3Q0VCdTUxdWkiLDkxMzE4Mjoic2hhMzg0LW44Q3Z1SHk3dG8yQk50K2I2eTVDNUNhNWhlSTZSOHczSXQ0bFVIbUZSUEU1Q2VHdXhuTFN1RVZuWUduNjZ1QTQiLDkxNDU4MToic2hhMzg0LWlDcG5QbjlCTk5PZjFENy9jMjhuZVhpVGhLQklXQUN0NU45SUcrN0htbGRSZytweWZrNUMycXpsWGF5Z201ZkciLDkxNDY4Nzoic2hhMzg0LW5PbVVIQVVQbjFmSnR1WmwxVXlVa3FXd0F4MytFTzlyWmlxVU9MTHNTTGZRRHlyaml5RWUzcVlWSjNWRlRhUWQiLDkxNTU2Njoic2hhMzg0LTNrQ3hvWmRwYnNvSSt4b0lkVlpsbXZndGhLa2h3TjFxRU55YnhHQkUrcVE5My9pVHlHZk9SNlFsY2FDM1ErWDAiLDkxNjEyNzoic2hhMzg0LXZhU2FEMVU1T0lESVV3SlQ3K2F4ZmswSk55emF6cjBSVFdva1IvTExoUi8yMUoyVlhHb0RHRkFXQkRLQzBLS24iLDkxNzIxNToic2hhMzg0LVp2RUt1NnJEam1aU2t3Mlc4VUFzV201THhxSlcwa01OQ1JoKzYxT25ySkErdlNEQm5HdGRPQlVFYzVVU2lRWEEiLDkxNzM1Mjoic2hhMzg0LTI2OThWcTBXM3dNRFRJS2JVdTRxUGVPMmVoMGRMMkMxR2w1dFpHZG9MWWo4YkFuSFRzYlVXMUdHa2VVaG1iZUEiLDkxODAxNjoic2hhMzg0LWozTzRIMjgzaFowczZHdFc2NFVwUy9JUUR3eDUwZFhtS3Z6MkhjWDNmSWtpVFpiZjAxTlkxZ1pHajY4aGdINngiLDkxODI2Mzoic2hhMzg0LVB3eVJKM2FaUDRzTWFhV0xhbGhHdjRFS29xRFVSL09vNm1JVDRnb2ZuSThzd3BiQ2VHVFFOR2I0MytGNkc2Z0wiLDkxODY0Mjoic2hhMzg0LTZaUWlqUWtYZTQ0bUM5QWoydTZHU1dLUUZIYnNMZjRtVVV4b0kwTXBVU1Q3dytTSUg5NENSNUIyTjF5UHF6U0giLDkxOTAxMjoic2hhMzg0LUhoZjh1dU8wVmx5NjlPOTUvSUJIMkRIZWlZUVlLK3R5KzY3SWFLTStubkl6T0t4R3VQbzJPa2MyMGNYMzhaZFYiLDkxOTM2MToic2hhMzg0LTdlaENtQ056Nzl5a1F6MXlGa2xHM1gxc2gwNU5FVGszZndRZkdrUEtEaHdHTmc5aEs0aXE4OWtacDN1NkpnWVgiLDkxOTkyNDoic2hhMzg0LWR6TkQvZ1R0KzB2QkNJNDVDSlZFNTVlYjEwZUZqbjF2cHhJN2hPVDNWaXZXVUNTU0RDb1dPbUhyV1pTenVSRUoiLDkyMDE1Nzoic2hhMzg0LWNlQURidlRrWDkyN056RmRnVTMwNk9DeWtHVFR2RlA0KzMzdGd6OGUzOWFlV3pYT3dDZUpnR0xZNzJKOTZVVE8iLDkyMDk2Mjoic2hhMzg0LWlYWHNMZkM5TEYrWmhkUXRDT0FEbThDdEdzRWdwK2FZaGxZRGpzUktLbkozWlE0UEFzTGlsQVRxY05KbU0rbnAiLDkyMTE1NDoic2hhMzg0LXE3aE9wbFRBTGFpWkpmMVpOUGdUN2k4dHdSTTUyT0gzbWZzb1RCcHNadEU3TzhSZ0VRY0xGNHNtZStDVmlhUDAiLDkyMTUzMToic2hhMzg0LWh3dWU5YWNsWE9nOXhNNThVYkZVeitURnJyWDloU0JGdytvaTlmSzRGN0ZTU0M0WjgvTkZaS1F2K0xlcnd4NXUiLDkyMTU0Mjoic2hhMzg0LVYwdTRrUldXekVFRHg5d2hSYkNCazk1aHdKYkdjbW5KeFZWR0d3Y1JabmMvZXdmcXdkWi93V3RERUV4amdMYnoiLDkyMjU0Mjoic2hhMzg0LXVCWkYycjk3NUxGVHEwemNvMlhteUdjWklUM3lubkNta2QrVTFqTUhNVGtvYTNXZlFJeFQ0TVlrSUdldW05THAiLDkyMzM4NDoic2hhMzg0LTE4d3JPU3h4LzFVZURvRWYzazVrZTA2eFlVaG1vQTBVRE5FTkR5SEFraGlMeWJzUWZkQWEzZmlMMVJOSkNnalkiLDkyMzU4Nzoic2hhMzg0LWFONXhTUE94dHhGVkFZbWxRVE84RUNQckZIL2xMWEpYNEdWKzg4YTExVEY1a3NmN3Fxek9aK0QzU0xuclBNQ2ciLDkyMzYzNzoic2hhMzg0LVlQWTd0d01yWUFVc3ZKVWszTkVuZDFvNmtScDhzcWpMaHQ0QXVqYXBJOG1GL1VlSXVERjFacDRZMnlrT1MwOCsiLDkyNTY3MToic2hhMzg0LWpWbnJHTlB1T3B0TEZ2NkpBMDhiTzN0T0tBQU9KT1ZJL1F6WUQ3YWxRRzRNTTkvclFqN0l6RXdPSnhCRUQ1WTUiLDkyOTE5NToic2hhMzg0LUdlMzM5LzBNM2hHc2xUOVZWT3Zsd20wSjRsMHh4c250SHN3ejJxc3ZvTXBqaGFqWlBEVUd6UUcyVVhsQU9UcWgiLDkyOTQ2NToic2hhMzg0LXo2TmFyTmFFVTFoWTNKRnJZWllObmsvL2lxL244TGplSDArSHozblZydTc2UGt6THhkSVcrMHBOK21mUGxlTFQiLDkyOTU4NDoic2hhMzg0LWF6OW5hYlN1MSs4ZHRheG9Ra0VLSXA3L25QT284bjJKc291VzNGRmhtSDhrRXFqb0FWWVV0Zzg2UXNsY1FKYzEiLDkyOTg0NDoic2hhMzg0LWVDNDhwancyejFCQVF6aU9BWklqNWF2bTJOakU4SUxOWi8rRVhLa2FwRnpvQS82N1FJWElpcytHQ09jK3VwOFAiLDkzMDI0OToic2hhMzg0LU40TlN6TE53R2hQYW5SWFVrRHRmT2hTSHJSbUx5STY1R0w2RjZJL2FEYm12N0w4UEUxY0pmandqUTFocmJ4SVQiLDkzMjU1Nzoic2hhMzg0LUx0Z2xScU1qa0tsY214QllNNEZWUWRFdEgzYUVqa1hlbHRjMkoyRlZlYXEvcnJ2KzNCVHQrUGxqS0xVMjdaWU0iLDkzMzcxMzoic2hhMzg0LWtjMnczM3lsa094VmI3M09qRTNiWXdCcGo5MjlqOHZDWFpycFdSeVU0ZnRsOVJFdVp4ZE1aazVMTFNEdHdyMGsiLDkzNDg3Nzoic2hhMzg0LW95SUZkbi9veXFUQWRVVDl1TitJY1hSczhEUTc3UGJMcElhUmUzbEpxUjZEM2M5U21CK1VLTDF4ZSswRytsMGciLDkzNjU5Njoic2hhMzg0LUFnekhFbnpkdTlETzVNdjJ1KzVNTldBdUc2Ym11V3lNUDV3YmlDeVB1MEFPblBnTEVxa1ArRDZqTlNCZ3JGaXIiLDkzNjgyNToic2hhMzg0LTNXTEJTMHIxT082cEE1c0E4SGowSENBdEh6MTV6ejlsQXQ2Q2lWbmFIcmNqa2tISk1sY2pxblNWSVhVTUczMXUiLDkzNjkxNToic2hhMzg0LWlTWWprTHVPaXcwc3dUNGFreTQwSlh4SmlOOGdDOTMvOFMrbVkzSGZKWXVCZjk4OWJTKzc1cG9pTi8wdUpJTHEiLDkzODA2Mjoic2hhMzg0LThmL21qN1JOM2prNy9iRW96QnowancrVStkNDY2NG1wZDlUMjZpaVdrZTVuNUN1VlhEWVpsR0s5RXFYZFpyVU4iLDkzOTA2Mzoic2hhMzg0LWlkR21BMjVuS1pMK0NRYm8wd1NKTGVWZDA0MVFKbnJHdEU0RmQ0QmxoQ0ZpUmowR1kxU3A2UGllMkxkY3FKT0UiLDk0MDI1NToic2hhMzg0LW9Ed25mTWlhVTFPNVZEQXpnMXYxSDloeEJGMEJlY3RGMHFtYlBUd2V6SGRKN24rL3h4eEJWVCtRMGo5Z25mQVgiLDk0MTgxNToic2hhMzg0LWVOYm9SK2x0VkFsV2dWY3dMend6b2l2M1FCZlF2THd1Tlo5SEdnbDBiN2M1eUNFV0Nod2JDWG1QVjBtQ3A2QXYiLDk0MzU2OToic2hhMzg0LTlISHQ0WW5Pc1dDOStoWTdMblM1azZIR1VVdHFwZW5nOEhpRjQrSHVMRjBLRVAvVVNKbDdkRklaN3NZQnJPUGoiLDk0NDU2MToic2hhMzg0LWk2bG1jcDRoUWlWMm9Cb0s4dnNnRXhJQ2RyZERjTzZ0Uit0b1J2TlRsVCttYkUyd29MamU4ODVxUmdmQkFYakkiLDk0NTk5OToic2hhMzg0LVR3K1ZkUXpjV1NZdVhvRld3ZG9zNnBsQThjT0dLTmIwNTJtbUEvZVorNUJrSG9ZSTd0d0dZVTRpUFV0aDJBcCsiLDk0ODg4MToic2hhMzg0LUk4bHNDQnp6MEdHVEdqTU9ldzdtdXpOV001NVd3eGlXeUxKSlhqWEtJOHFTVFpMN1M2WUR1Q2RyWkVqaEQvOFEiLDk0OTE2ODoic2hhMzg0LTVNUm5IYWZ3Sitpdjc1VFUwM0JIOURlMnE3UWkzYUM2NXdBRkF0Qm0xdU1qczhPbzJYRGowOHRaeTVnUWZlOTEiLDk1MjE1Mjoic2hhMzg0LXdNUnBhL25Qb3V1TEFaY0RXbmpOUHF6ZXpuTDdVWDd0VzA4YjlhYTlmVEkwTjJqNmU1dU52VFNrUXZWbjd0eFQiLDk1MzM1NDoic2hhMzg0LVZZbFAyNjkzVWFOc1pWNW53QkFWYVozb1hBRFdKNlpMTGNnNXdXT1BDN0Q2NlhRTE9ucm10RkJ3ZFVmWGdGdjEiLDk1MzUxNToic2hhMzg0LXByUzRoeDczRmVpQVRwcXZPd21ZZ3h1S3B3cERCTC8xa3NKdmRhQk5QRlpNUjNUTVEvMGtOZlBYZ3lRWEFpWEoiLDk1NTA2NToic2hhMzg0LUNUNm10NGFMYXg3Q1kxb2hFbkZXZ2tyN1BOZjZHY2ZIWjdjSFNLY2dUOVR3QkV6VGpHVFFURjFTdG5nUXcyRVQiLDk1NTg2Njoic2hhMzg0LWIrZm1YMTZIR1YzZlQzcVdvSGdLRStDYU5RNW41eEUrQkdSNW1PbDNCVm41ZEh0TElWdGRTVW5nWTFMQ3BKQS8iLDk1NjE2OToic2hhMzg0LTF5WElqQnhKdmc0Umc2Y1d0UktoV1ZEY1p1ckx5UW52cDB4VERIUlkvbVZzdjNPc2JOYytpcG9HaVprYWhCNE4iLDk1NjMzNzoic2hhMzg0LWdKWjNqdklieUZIbEV2clRJUDBia2NMOHQ3VTQ4SUZhOTRLRzJ5MEovdWZvRm9OQm9xSjlBMDNMR2drdTdRMUEiLDk1NzIxOToic2hhMzg0LVd3Q3p5S0hXRTFjU0lqV0ZyNUJSWDlOWGhJRVpXK0FaRi82RFR6aTZMaEZEczV1UjlsSUZ0NzhUNEJPSE5ySHMiLDk1NzUxODoic2hhMzg0LTVUbmlxTzFLVmJ2NDdEYWlDcWVJUzJObXRLRzdCcnpqckZTSjI3b2o5L3hFMDB6OTZDQW41WHBNWXhPUWVta3AiLDk1ODMzOToic2hhMzg0LXlGN3RxaHZTcTlUMjNHNmFBUDBXZTIvVWEwdFNPTE4vRHFPaERsdVZqay8xOGpqS21xY1Z4QmpRT00yUzNGZ0giLDk2MDkyNzoic2hhMzg0LWhWZlMyc2ljaXlZWXRMbUsvZDJTVkpRcUw3ZkI2ZDNPaFR1MURKNUhablo2M05hckhCc0xRdGN2clRHWmUvYkYiLDk2MDk4OToic2hhMzg0LUxIZTYycW1QZ3I3NzkxVEFxNk41Y1M4U1dHd1BLUENzaXppMThPMFdQYlVDZmRYMlJ2dy9oWDhONHFBZXBPNEciLDk2MjI2MToic2hhMzg0LVJPWUJpd3ZpVmxFMVh5NUl6a29RQUNISk1ZVGtRMWNHWDVVMlNRblhJaUdoa3RtejM0SHZ6SVNlQTJJN1hwUUQiLDk2MjQxODoic2hhMzg0LXJ5a3hxb0hPZGNGZGlLMlowazhEb0pKMkxPT1dhNDNLNUEydXhad1IzM3lScDN1cFVNbndpby9UOUE0L0RTaTIiLDk2NjIwNDoic2hhMzg0LVVyY0xtcjhEbVNORHA0TTFqVno0cklOSTFvYThsaUJPYzlIb3lXTFpwcmduQkl3UGV5Sk1sdEp4MTRSNUpkR3QiLDk2NzQ3OToic2hhMzg0LTRPbjZ1Ym44UUhPOVpYNUdsYnEwZ1pXRldsdVRKeFVSZk1pd2JhR3B6T1ZvT1dVRTZ5cVhnYkIxZnVhQmxjU2oiLDk2NzQ4NDoic2hhMzg0LW15MDMveElWSHdwYnIwYi9VeU1MUzBVTEFKMGt2SElIbHptbDNWd210REs1Y3FYRVp0UFAvU2xlMklzTmltODciLDk2NzUzOToic2hhMzg0LVE1OW1FZm1kdXRRNERFRmV0bDg2T0lwUWs1djRycDlqaC9kbmw4eDdwanA3WTNhM0J4czdRaVptVzhnQ0cvOXAiLDk2Nzg0Nzoic2hhMzg0LXJWMHFCZmJ0OStDVjh4RmhjWlhaZWYrbkhrZGdaQms1U3p2ejRlSXAvN1ErS1FWQm1aTW14SS91R2dzSHYvUW4iLDk2ODEzNjoic2hhMzg0LWFnSWRlc0lFQ3lmdldRV3JCS3h2QTh3dGdYOEFlTVp5OEdDSWoyMHpyME5SMXRDWUNsNlZSRFVkU2hOSWs1dmciLDk2ODc0NDoic2hhMzg0LTJvNVdTS2xBSStPbE5DYUY3STEydEp3TENTY2RodTBacVdwRllxUVdrbm81L1ZlbEhhMnNtSXB4R0tqOGtUU1AiLDk2ODg2NDoic2hhMzg0LTRVWUhYdXp0ak43UlB1ZDMxR09LK2x5NkU5VmxVakVkcnhocFRxdmt0bWhOWmhoMFB0TFBacGJkakpBdFJoSWciLDk2OTQxMzoic2hhMzg0LUNNci94QnBtbTU1ejg1WmRzalc5YklkYk5wL3M1ankyOW5peDZzZjMrNVBvUHZsOTFpUkNGeUpPdkJRWE9Qc1UiLDk3MDgxMjoic2hhMzg0LWdTS092WVpjNnhLRmFOcXZhTDlzYVpnMTg3aWdFdUlPNU1CRU50RWNmOVFnSloxTkovR25adzQ0Tkk0ZDF3TjUiLDk3MDk3Mjoic2hhMzg0LUF5aXBCZ0RnOStOaTBxVk5hbTZIN2dFaEhmcStUelQyOEZSTkpjQm5xWkZaZ2kzVUVBZFFDN0ZDNHhZb2MrRnoiLDk3MTE2ODoic2hhMzg0LWZNa1BFYWtOK0dndGZxeVRCUkp1TUR4ZnBjY1lRRDhJQTQvMFp5aHp1MmEvQm1rRGJ1aDd1T3ZWSGVEN3NPMEoiLDk3MjM5OToic2hhMzg0LXZSSDRxUy9HR1lySDk5SXArQ1RWOVQ3elZzWHNRd0R6Z3k4ZmRqbUFXL1o5US9iRkFid2NzRXdqbjJGd0JaZloiLDk3MzgwNjoic2hhMzg0LTNGajRteDdCVkhTTXRzTUwvTHdDVkc4UUxmUlZ1SDk3N2s1U0IySlBmSjYrVGVuNUZVTDlsa2F1NDh5S21ZSXgiLDk3NDU0MDoic2hhMzg0LXdHYjl5N2lUaTZ5ZTRyUGxsN2oyZWRNeXJ3b1NaT0VMTHQvc2FDMk1FTW1hM1ZPMlVraVpMSE1MQ01lMExSa1MiLDk3NDc3Njoic2hhMzg0LWFGemRLeUFOMCtyWlJpT2VwMVRzR0h1RVJQRmVnREJhdmVXY0ZyOFRjaklaK0lEMFhrL3k1cHZvakZZSkUrNmMiLDk3ODA5ODoic2hhMzg0LVByNEphcFVXM05Vb3dhdDVmeGlJN094YVpXQ0Q1UE9WbnJiRWg1NDd0dVZ1Q2RNcGtydzVnRGp4d3BZZTQvdTkiLDk3ODY2NToic2hhMzg0LXFYYWw5ZW9TUXpEeE1MRlJNUGZ3ZmthditRWThTNXNJbFNhNjBNNHhXcngvL2hpRkRPZHprdlNMTWZBazNxY1oiLDk3ODk5Njoic2hhMzg0LTJ4emJRNDJhMG1uT3BmNkVScDhjbHppaUpHNUFUZ29KSnlFZFRGcnFGZjgzRmJnelNvdjNBRnlSU0Q3K3FMUk0iLDk3OTI0Mjoic2hhMzg0LUpuV0gxbHE3MmNvR0ZZL1FCWXpkLy9yQ2kzUER2dTBSM3JqZjk0ZTE5Y1FwV0luUFIrNG9NbUxhMTNLbVdNSDAiLDk3OTYzNToic2hhMzg0LXBSajRJT091RmJIbHZUblByYmRYWUNkWFZ0VUorNFhERGRSUmhpajkwTmlFSTNsV3BmYllkSUVwRTBEMVF5UjIiLDk4MTUyMjoic2hhMzg0LTBXcnlPWStPYzJjU2UzOEhYL1VRdnBJOGlZTDdIbnhsK1lQVHFSZzVrTVlrNVNlRzZxeXluNkxHb050TG5XOG0iLDk4MjQyMToic2hhMzg0LUhMbFF1ck1XYkN5cllhUUdFbFBEeERzN0hxYURheTkxVXg0TU1HNjdLK0pWOExWMVgvd0NxMDdwOHgyQW4xZSsiLDk4NDE2MToic2hhMzg0LS9FS1ZMVE80U3J6TmZzMklweXJvZTVyamJpaE5WLzZzMVFRbkUzMmpoVVBUVWhZeDMxaGxjN1Jyd1F5TVJ0aG8iLDk4NDI1MDoic2hhMzg0LVkzK0tHbG9senF2MFZxS202UTQ4MmZpVm00TzBabWtYN3FFVUl2UDVJS2VqNUdFVFBQemxwRlNyOHpnOXlxV0ciLDk4NDY5NToic2hhMzg0LTJPZ1Y3V2lFWFc4T3dOZzBFOGZMOE5PQktDTWxMNEMwd1V2bnFvVEpsUnJBV3pPUXRZRTdNcWNjQnZxaUpDWVkiLDk4NjU4OToic2hhMzg0LStsZWhkUkIxWis2emkrUFhxYUxrQ3VhaGQyWGFNUzhzZzM5QkVzR1FJTm13eHIyenlRWkxiMXN2cGZEdE1YeEUiLDk4ODEwMToic2hhMzg0LVlxdmtSMzFJOU4vWkdHQnBDcmh2VUZ4RnIxblZGVkdzenkvSkx5UGFLUEFacUNhcUljSm9tcjVGY0FJQlRYT00iLDk4ODg4Nzoic2hhMzg0LW5McVdtaEtURnZvOTNoemg0ZWRKczAxSG43eWdjRnh0ZDQvUDZOM1VtcnA3b0tBWDFXSnB2R0o5dkFxbkU0YkciLDk4ODkyNjoic2hhMzg0LXJEVEoyOG1lNVNzYmR1N3k0WFRPZHlQbUZjWmxMOVVEK2dkdW94MGxuL2NCZG5BdUozakdMYnRxVnA2VXo4cUgiLDk4OTE4MToic2hhMzg0LU9RMU5WeThtcGpYNm5SbGVscElIRmpNUm9CRHZPc29QNGdIdEtqNnZOMXQrazAzWC9TUXNUS2ZaRGIvc0E2VE8iLDk4OTUwNjoic2hhMzg0LWZaSWVDQ3VoZmZDYkphWTBhZzVXUEo3dVB0ZTU0T2pSWjNNMzE0MUZnU3dHbHJzM1lVbGIzR2x3bWl3aTNFVWoiLDk4OTg4MDoic2hhMzg0LWhJMWtIUkF3TERpRGZwRDJ0U0N1SC9keXRLbUdhNDRTSm5jNzk2RWdKZUNMcE15OW9iaWF6NlJ6Zm1WKzNUN1IiLDk5MDM5Nzoic2hhMzg0LWNwL2lFNmg0YWZobDgrWHNGdk9aNkVRWlhCRFZYKzVGMDhZbGgxRUNMeFY1d1MzWEpqb1NXQlFYQTN3MTdEcWUiLDk5MTEwOToic2hhMzg0LXFVWWg0ZUZvUGRESkQ0eTNuY3p2NmlqZjJ5SGc4aXF1VWlQdXZHTmRnM1o2VEpNd21GRUJ0eHhCTU0zZjFpQ20iLDk5Mjk2Nzoic2hhMzg0LXMxRVhzTDFEUzMzeUR4akdCTjZFc1VpNVF6ZURDL3kxY2phQXZXMGZFbmNwQ0YwQmNOSTJWQ2pNakRFZmFSUFEiLDk5MzQ5Mzoic2hhMzg0LWdpenFsRk51Z1dMR2hUNTVjZ1hVTEc2UDVFb3d4RnU1bkpoazRsaTY0NXhwZDJnS0pZM29HcWNkekYrSXVvY1QiLDk5NDAxNDoic2hhMzg0LW4vTmdHWTQ1azV5a1hpRmc1ck9zbGJnY2lXdFowM09qRFJXYjJPMDlrUG9nU25EVUpRcU1MSDdwcWE3YlQ4Yk8iLDk5NTI0Mzoic2hhMzg0LXhWVHRMWHNNSmZvbTZUY2dOdENUeXhhZUJCZjZsMzkyeXlVaXMwZXQ4TTQ5ZEdtSVNROXdjaGlFRnFxSS9HUzQiLDk5NjYyNjoic2hhMzg0LVlCMHZBaUVBaHRySmpBRzNTSlIwcUNYbzl4TmVjek1DcnczcGVCcFlFS3V1M0F3NDhoaW10VS9yZGZZV2N5ZmMiLDk5NzQ3MToic2hhMzg0LUg1bTJLMU1zcElLOUp0REk3MFBYRE56SFJJS1dYUUFkc2pWSVhzQ2ZhOFNKV0tqTmRqUDlZZHdWU05mSzRvQ3giLDk5NzgzNToic2hhMzg0LW1lYW0xRU9HczhRSXFMU1dNWThMaVJqbnZGalB2RkF5N1UrTVFmTDdydmM2Yy93c3FvMjZRMTJ4cEZsNHo2SlgiLDk5ODE2MDoic2hhMzg0LU02bEo1UE8xV0V3VkxUOWRXbURNNURacnNSYzltaVlCcXRxT1ozbTZQb0p4SnNGSnRvckxiZWxSZ0g1R2VHK2QifTt2YXIgcz0idW5kZWZpbmVkIj09dHlwZW9mIGRvY3VtZW50fHwiQUcwOCIhPT0oZG9jdW1lbnQucXVlcnlTZWxlY3RvcigibWV0YVtuYW1lPSdlbnZpcm9ubWVudCddIikmJmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIm1ldGFbbmFtZT0nZW52aXJvbm1lbnQnXSIpLmdldEF0dHJpYnV0ZSgiY29udGVudCIpKSYmIkFHMDkiIT09KGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIm1ldGFbbmFtZT0nZW52aXJvbm1lbnQnXSIpJiZkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJtZXRhW25hbWU9J2Vudmlyb25tZW50J10iKS5nZXRBdHRyaWJ1dGUoImNvbnRlbnQiKSk/W106WyIuLi9yZXNvdXJjZXMvbG9jYWxlLWNvbnNvbGlkYXRlZC9bbG9jYWxlXS9vd2EuY29uc29saWRhdGVkLm1haWxpbmRleC5tLmpzb24iXSxjPVtdO3NlbGYuX2xvY1N0cmluZ3M9e2FkZExvY3N0cmluZ0Fzc2V0OmZ1bmN0aW9uKGUpe3JldHVybiBzLnB1c2goZSksUHJvbWlzZS5hbGwoYy5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmhhbmRsZXIoYS5wK2UucmVwbGFjZSgvXFtsb2NhbGVcXS9nLHQubG9jYWxlKSl9KSkpfSxyZWdpc3RlckhhbmRsZXI6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gYy5wdXNoKHtsb2NhbGU6ZSxoYW5kbGVyOnR9KSxQcm9taXNlLmFsbChzLm1hcCgoZnVuY3Rpb24obil7cmV0dXJuIHQoYS5wK24ucmVwbGFjZSgvXFtsb2NhbGVcXS9nLGUpKX0pKSl9LHVucmVnaXN0ZXJIYW5kbGVyOmZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuPTA7bjxjO24rKylpZihjW25dLmxvY2FsZT09PWUmJmMuaGFuZGxlcj09dClyZXR1cm4gdm9pZCBjLnNwbGljZShuLDEpfX07dmFyIHUsbCxILGQ9ezU2OjU2LDU4MTo1ODEsMTU2MDoiU2NoZWR1bGluZ0Fzc2lzdGFudCIsNDA5NzoiTWFpbENvbXBvc2VQcm9qZWN0aW9uIiw1MTQwOjUxNDAsNTk1ODo1OTU4LDc0MTY6NzQxNiw4NTA0Ojg1MDQsMTA0ODI6MTA0ODIsMTA3MTE6MTA3MTEsMTYwNDQ6MTYwNDQsMTY1OTk6MTY1OTksMjAzMzg6MjAzMzgsMjA3MzM6IkZpbGVzQm9vdCIsMjEwODc6MjEwODcsMjIxMDg6MjIxMDgsMjM3Mzc6MjM3MzcsMjQ3NzI6IkFkZENhbGVuZGFyc1BhbmUiLDI3ODc1OjI3ODc1LDI4NTU1OjI4NTU1LDI5MzUzOjI5MzUzLDMxOTQ4OjMxOTQ4LDM0OTIyOjM0OTIyLDQwMTc2OjQwMTc2LDQwOTYyOjQwOTYyLDQzMjc5OjQzMjc5LDQ0ODkwOjQ0ODkwLDQ1NTUzOjQ1NTUzLDQ4MDUyOjQ4MDUyLDQ4MjI5OjQ4MjI5LDQ4NTkzOjQ4NTkzLDQ5MTM3OjQ5MTM3LDUzOTUwOjUzOTUwLDU2MjQ4OjU2MjQ4LDYwNTEzOjYwNTEzLDYwNTY1OjYwNTY1LDYwODAyOjYwODAyLDYxMDk1OjYxMDk1LDYyMTQ2OjYyMTQ2LDYyMjc1OjYyMjc1LDYzNTM2OjYzNTM2LDY1ODgxOjY1ODgxLDY3MzcxOjY3MzcxLDY4NTcwOjY4NTcwLDcwNzM5OjcwNzM5LDcxNDE4OjcxNDE4LDczZTM6NzNlMyw3NjIwNDo3NjIwNCw3NjI5Njo3NjI5Niw3NjU2ODo3NjU2OCw3ODkzOTo3ODkzOSw4MDAwNjo4MDAwNiw4MjAzODo4MjAzOCw4MjkyNjo4MjkyNiw4NTQ5NTo4NTQ5NSw4NjU1Njo4NjU1Niw4NzgzOTo4NzgzOSw4OTEyNTo4OTEyNSw5NDUyNDoiTWFpbExpc3RJdGVtQ29udGV4dE1lbnUiLDk1MjIyOjk1MjIyLDEwMDE5MDoxMDAxOTAsMTA0NjY0OjEwNDY2NCwxMDk5MTA6MTA5OTEwLDExMDE0NjoxMTAxNDYsMTEwMjU0OjExMDI1NCwxMTExNjg6MTExMTY4LDExMjI1MjoxMTIyNTIsMTEzMzA1OjExMzMwNSwxMTQzMjA6IkNoYW5nZU1vZHVsZSIsMTE2NDU4OiJQb3BvdXQiLDExODkxMDoiUGxhY2VzQm9vdCIsMTE5MDA1OjExOTAwNSwxMTk1Mjg6MTE5NTI4LDEyMDYxMzoxMjA2MTMsMTIxMzY2OjEyMTM2NiwxMjI2MDU6MTIyNjA1LDEyMzU2NDoxMjM1NjQsMTIzNjQ5OjEyMzY0OSwxMjU0MzM6Ik1haWxDb21wb3NlIiwxMjU5NTM6MTI1OTUzLDEyNzQ2MToxMjc0NjEsMTI4MTc1OjEyODE3NSwxMjkyNTY6MTI5MjU2LDEzMDM1ODoxMzAzNTgsMTMxOTU4OjEzMTk1OCwxMzI0MDA6MTMyNDAwLDEzMjQ1MDoxMzI0NTAsMTMyNjg5OjEzMjY4OSwxMzQzNzE6MTM0MzcxLDEzNTA1MDoxMzUwNTAsMTM2ODEyOiJBcHBIb3N0Qm9vdCIsMTM4NDMxOjEzODQzMSwxMzg5NjQ6IlRpbWVQYW5lbENhbGVuZGFyIiwxNDAxMzE6MTQwMTMxLDE0Mjc5NDoxNDI3OTQsMTQ4MDUxOjE0ODA1MSwxNDg0NzU6MTQ4NDc1LDE0ODYzNToxNDg2MzUsMTQ5NDg3OjE0OTQ4NywxNDk3MDU6MTQ5NzA1LDE1MDQ1MzoxNTA0NTMsMTUxMTIxOjE1MTEyMSwxNTI1NTI6MTUyNTUyLDE1MzAzNDoxNTMwMzQsMTU1NzQxOjE1NTc0MSwxNTcwODE6MTU3MDgxLDE1ODA3MDoxNTgwNzAsMTYxMzY3OjE2MTM2NywxNjI3MTQ6MTYyNzE0LDE2Mjc1NDoxNjI3NTQsMTYzMTI2OjE2MzEyNiwxNjg1OTM6MTY4NTkzLDE2ODczNjoxNjg3MzYsMTY5MDEwOjE2OTAxMCwxNzUyNTM6MTc1MjUzLDE3NzIxNDoxNzcyMTQsMTc3Mzk1OjE3NzM5NSwxODEyNTc6MTgxMjU3LDE4MTY3NjoxODE2NzYsMTgzMjgzOjE4MzI4MywxODY1NTk6MTg2NTU5LDE4NzA5ODoxODcwOTgsMTg4MzIyOjE4ODMyMiwxODg3NjY6MTg4NzY2LDE5MDY5MzoxOTA2OTMsMTkxNDMzOjE5MTQzMywxOTI3NTM6MTkyNzUzLDE5Mzc4NzoxOTM3ODcsMTk4NjU3OjE5ODY1NywxOTk2OTg6MTk5Njk4LDIwMDY0MToyMDA2NDEsMjAyMDI0OjIwMjAyNCwyMDI1MzA6MjAyNTMwLDIwMzE0MjoyMDMxNDIsMjA0NDU4OjIwNDQ1OCwyMDQ5NTY6MjA0OTU2LDIwNTM2NDoyMDUzNjQsMjA1NTMxOjIwNTUzMSwyMDY3MTE6MjA2NzExLDIwNzczMToyMDc3MzEsMjA4MzY4OjIwODM2OCwyMDk4MzY6MjA5ODM2LDIxMDYxMzoyMTA2MTMsMjExMzE0OjIxMTMxNCwyMTE0MzY6MjExNDM2LDIxMzg1MzoiQ2FsZW5kYXJQZWVrIiwyMTQwNTk6MjE0MDU5LDIxNjYwMzoyMTY2MDMsMjE3NjYwOjIxNzY2MCwyMjAyMjY6MjIwMjI2LDIyMzg1MzoyMjM4NTMsMjI1OTEzOjIyNTkxMywyMjY2Njg6MjI2NjY4LDIyNjk4MjoyMjY5ODIsMjI4MjY5OjIyODI2OSwyMjkxMDg6MjI5MTA4LDIzMDI3MToyMzAyNzEsMjM0NzI4OjIzNDcyOCwyMzU5ODU6MjM1OTg1LDIzNzQ1NzoyMzc0NTcsMjM4Njg2OjIzODY4NiwyMzkxMzI6MjM5MTMyLDIzOTI2NjoyMzkyNjYsMjM5OTgxOjIzOTk4MSwyNDAxMDI6MjQwMTAyLDI0Mjc3NzoyNDI3NzcsMjQzMzUzOiJMb2NhdGlvbkNhcmQiLDI0NDAwMjoyNDQwMDIsMjQ0NjA0OiJNYWlsQ29tcG9zZUFjdGlvbnMiLDI0NDY5NToyNDQ2OTUsMjQ2MzEzOjI0NjMxMywyNDY2OTA6MjQ2NjkwLDI1MTAzMToyNTEwMzEsMjUxMTk0OiJDYWxlbmRhclF1aWNrQ29tcG9zZSIsMjU0NjQ1OjI1NDY0NSwyNTczMzk6MjU3MzM5LDI1ODQ5MzoyNTg0OTMsMjYyNTg2OjI2MjU4NiwyNjQ1NDg6MjY0NTQ4LDI2NTMwODoyNjUzMDgsMjY1MzEwOjI2NTMxMCwyNjY2MTY6MjY2NjE2LDI2OTI2NzoyNjkyNjcsMjY5MzUyOjI2OTM1MiwyNjkzODU6Ik1haWxDb21tYW5kQWN0aW9ucyIsMjcxMDQ2OiJDYWxlbmRhckJvYXJkUXVpY2tTd2l0Y2hlciIsMjcyNzc4OjI3Mjc3OCwyNzI5NTc6MjcyOTU3LDI3MzExNjoiQ2FsZW5kYXJGdWxsQ29tcG9zZVJpYmJvbiIsMjczNjEzOjI3MzYxMywyNzQ2NjM6Mjc0NjYzLDI3OTEwNToyNzkxMDUsMjc5MjQ5OjI3OTI0OSwyODI0NjM6MjgyNDYzLDI4MzE2NDoyODMxNjQsMjgzMzAxOjI4MzMwMSwyODM5NTM6IlJvb21TZWxlY3RvciIsMjg1MzIwOjI4NTMyMCwyODg3ODU6Mjg4Nzg1LDI4OTEyMDoyODkxMjAsMjkwMTUyOjI5MDE1MiwyOTA1OTE6MjkwNTkxLDI5MTIxODoyOTEyMTgsMjkxMjcxOjI5MTI3MSwyOTMxMjM6MjkzMTIzLDI5MzM4ODoyOTMzODgsMjk4MjkyOjI5ODI5MiwyOTgzMjk6Mjk4MzI5LDI5ODU5MjoyOTg1OTIsMzAyMTY0OjMwMjE2NCwzMDQ1OTE6MzA0NTkxLDMwNDY0MToiQWRkaW5zTWFpbCIsMzA1ODYxOjMwNTg2MSwzMDkzNTc6MzA5MzU3LDMxMDk0NjozMTA5NDYsMzEyMTc4OjMxMjE3OCwzMTMwOTM6MzEzMDkzLDMxMzc1MjozMTM3NTIsMzE0NDUyOiJSZWFkaW5nUGFuZVByaW50IiwzMTUxMzE6MzE1MTMxLDMxNTkyMDozMTU5MjAsMzE2NzM5OjMxNjczOSwzMTcyOTk6MzE3Mjk5LDMxNzQ4MjozMTc0ODIsMzE4MTU4OjMxODE1OCwzMTkxMDk6MzE5MTA5LDMxOTQwMDozMTk0MDAsMzIwOTE5OiJDb252ZXJzYXRpb25SZWFkaW5nUGFuZVN0b3JlIiwzMjEyMTY6MzIxMjE2LDMyMTU2MjozMjE1NjIsMzIyMDUxOjMyMjA1MSwzMjM0MTI6IkFkZGluc0NvcmUiLDMyODI3MToiTG9jYXRpb25DYXJkT3B4IiwzMzI2NDk6MzMyNjQ5LDMzMzgwMzozMzM4MDMsMzM1ODI3OjMzNTgyNywzMzc1NDU6MzM3NTQ1LDMzNzk2ODozMzc5NjgsMzM5MjQ5OjMzOTI0OSwzNDAxMzg6MzQwMTM4LDM0MDc5ODozNDA3OTgsMzQzMjE3OjM0MzIxNywzNDM4NTA6MzQzODUwLDM0NjE3NDozNDYxNzQsMzQ3NjY4OjM0NzY2OCwzNDc3ODE6MzQ3NzgxLDM0ODE4NzozNDgxODcsMzQ4MjcxOjM0ODI3MSwzNDk2OTE6MzQ5NjkxLDM1MTY3ODozNTE2NzgsMzUxODgwOjM1MTg4MCwzNTI1MzY6MzUyNTM2LDM1MzIwOTozNTMyMDksMzUzNjg2OjM1MzY4NiwzNTM3NzA6MzUzNzcwLDM1NDIzOTozNTQyMzksMzU1Mjc4OjM1NTI3OCwzNTc3MTI6MzU3NzEyLDM2MDYxMjozNjA2MTIsMzYxOTQyOjM2MTk0MiwzNjI1MTE6MzYyNTExLDM2NDU4NTozNjQ1ODUsMzY1ODQ0OjM2NTg0NCwzNjY3Njg6MzY2NzY4LDM2ODQ2NTozNjg0NjUsMzY4NzQ3OjM2ODc0NywzNjkyNzY6MzY5Mjc2LDM3MDQzMDozNzA0MzAsMzcwNjA1OjM3MDYwNSwzNzEwNzE6MzcxMDcxLDM3MTc5NTozNzE3OTUsMzcyMjUwOjM3MjI1MCwzNzI2ODA6MzcyNjgwLDM3MzgwNzozNzM4MDcsMzc0NzkzOjM3NDc5MywzNzU2MDI6Mzc1NjAyLDM3NTkzMTozNzU5MzEsMzgxMDM5OjM4MTAzOSwzODE4ODk6MzgxODg5LDM4MjYzMDoiQ2FsZW5kYXJDb21wb3NlRm9ybUxpZmVjeWNsZSIsMzgzMDUxOjM4MzA1MSwzODM1MzU6MzgzNTM1LDM4NTU1MTozODU1NTEsMzg4ODU5OjM4ODg1OSwzODg5MTQ6Mzg4OTE0LDM5MTE4MDozOTExODAsMzkxMzA2OiJDYWxlbmRhckZ1bGxDb21wb3NlIiwzOTU2MjY6Mzk1NjI2LDM5ODAxNzozOTgwMTcsMzk5MzQ0OjM5OTM0NCw0MDM2MjE6NDAzNjIxLDQwNzgxODo0MDc4MTgsNDA4MDY4OjQwODA2OCw0MDk1NDc6NDA5NTQ3LDQxMDQ2OTo0MTA0NjksNDEyMDg3OjQxMjA4Nyw0MTM4NzI6NDEzODcyLDQxNDI4NDoiU2hhcmVkQm9vdCIsNDE5OTEyOjQxOTkxMiw0MjAwNzA6NDIwMDcwLDQyMDEwODo0MjAxMDgsNDIxMjE0OjQyMTIxNCw0MjM1NDc6NDIzNTQ3LDQyNDQ5NTo0MjQ0OTUsNDI0NzQxOjQyNDc0MSw0MjQ5NDI6NDI0OTQyLDQyNjEyNDo0MjYxMjQsNDI5MjQ2OiJDYWxlbmRhck1vZHVsZU9yY2hlc3RyYXRpb24iLDQyOTc5Nzo0Mjk3OTcsNDMwMjM3OjQzMDIzNyw0MzEzODU6Ik93YU0zNjVBY3F1aXNpdGlvbnMiLDQzMTgyMjoiTWFpbFJpYmJvbkNvbXBvc2VQcm9qZWN0aW9uIiw0MzM0NTc6NDMzNDU3LDQzNDkwMjoiQ2FsZW5kYXJJdGVtUGVlayIsNDM0OTc5OjQzNDk3OSw0MzkwMTM6IlRvZG9Db250ZXh0TWVudSIsNDM5MjU3OjQzOTI1Nyw0NDA2OTM6NDQwNjkzLDQ0MDg3MTo0NDA4NzEsNDQyNDE2OjQ0MjQxNiw0NDM2NTc6NDQzNjU3LDQ0OTE1ODo0NDkxNTgsNDQ5NTg5OjQ0OTU4OSw0NTIwMjU6NDUyMDI1LDQ1MjgxNjo0NTI4MTYsNDUzNDEyOjQ1MzQxMiw0NTcwNzY6NDU3MDc2LDQ1NzQwNDo0NTc0MDQsNDU3NTI5OjQ1NzUyOSw0NTgxMDY6NDU4MTA2LDQ1OTc3OTo0NTk3NzksNDYwMDY3OiJDYWxlbmRhckJvb2tpbmdzU2xvdHMiLDQ2MDI2NDo0NjAyNjQsNDYxODM1OjQ2MTgzNSw0NjE5MDM6NDYxOTAzLDQ2MjQ3NDo0NjI0NzQsNDYyNzIyOjQ2MjcyMiw0NjU1OTY6NDY1NTk2LDQ2NjEwNzo0NjYxMDcsNDY3NTI4OjQ2NzUyOCw0NzA0NzE6NDcwNDcxLDQ3MDY3ODo0NzA2NzgsNDcxMTg4OjQ3MTE4OCw0NzQ5MDI6NDc0OTAyLDQ3NjY2NDo0NzY2NjQsNDc5MDA5OiJSZWFkaW5nUGFuZUl0ZW0iLDQ3OTE2OTo0NzkxNjksNDgzMjA4OjQ4MzIwOCw0ODM1MjI6NDgzNTIyLDQ4NDc5OTo0ODQ3OTksNDg2NTgzOjQ4NjU4Myw0ODgxNjk6NDg4MTY5LDQ5MjM1MDo0OTIzNTAsNDkzODMyOjQ5MzgzMiw0OTQ0MDI6NDk0NDAyLDQ5NDkxNjo0OTQ5MTYsNDk1MzE0OjQ5NTMxNCw0OTYxOTc6NDk2MTk3LDQ5NzQ1MDo0OTc0NTAsNDk5MDY5OjQ5OTA2OSw0OTk1MTE6NDk5NTExLDQ5OTk5NTo0OTk5OTUsNTAxMTM1OjUwMTEzNSw1MDE2OTc6Ik1haWxCb290Iiw1MDE5Mzc6NTAxOTM3LDUwMjcwNjo1MDI3MDYsNTAyOTEyOjUwMjkxMiw1MDM1NzQ6NTAzNTc0LDUwNDIwNjo1MDQyMDYsNTA2NzgzOiJDYWxlbmRhclJlYWRpbmdQYW5lUmliYm9uIiw1MDgwNTM6NTA4MDUzLDUwODE1MTo1MDgxNTEsNTEzNTExOjUxMzUxMSw1MTQ5ODA6NTE0OTgwLDUxODE0NToiQ2FsZW5kYXJDb21tYW5kaW5nT3JjaGVzdHJhdGlvbiIsNTE4MjQyOjUxODI0Miw1MTk0MjQ6NTE5NDI0LDUyMDMzNTo1MjAzMzUsNTIyNTA1OiJDYWxlbmRhclJlYWRpbmdQYW5lQWN0aW9ucyIsNTIyNjU0OjUyMjY1NCw1MjMxNzY6NTIzMTc2LDUyNTI1ODoiQ2FsZW5kYXJSZWFkaW5nUGFuZSIsNTMzNDEzOjUzMzQxMyw1MzQ2MzU6NTM0NjM1LDUzNDc0OTo1MzQ3NDksNTM3NDgwOjUzNzQ4MCw1Mzg0ODU6NTM4NDg1LDU0MTUxODo1NDE1MTgsNTQ1NjAwOjU0NTYwMCw1NDY5Nzc6NTQ2OTc3LDU0NzY5MTo1NDc2OTEsNTQ4ODUzOjU0ODg1Myw1NTEzNTE6NTUxMzUxLDU1MTUyMzo1NTE1MjMsNTUyOTM3OjU1MjkzNyw1NThlMzoiR3JvdXBzQm9vdCIsNTYyMDUzOjU2MjA1Myw1NjI2MDg6NTYyNjA4LDU2NTY2MDo1NjU2NjAsNTY3MTY1OjU2NzE2NSw1Njk2MzM6NTY5NjMzLDU2OTcwNjo1Njk3MDYsNTcxMjQzOjU3MTI0Myw1NzE4NDg6NTcxODQ4LDU3MzY3MDo1NzM2NzAsNTc0MzAxOiJSZWFkaW5nUGFuZSIsNTc0NTU0OjU3NDU1NCw1NzQ1ODg6NTc0NTg4LDU3NjExMjoiQ2FsZW5kYXJCb2FyZENvbnRleHRNZW51Iiw1NzYxMTg6NTc2MTE4LDU3NzUwNDo1Nzc1MDQsNTc3NzYzOjU3Nzc2Myw1Nzk3OTE6NTc5NzkxLDU4MTEyNDoiTWFpbFJpYmJvblJlYWRQcm9qZWN0aW9uIiw1ODIwMzg6NTgyMDM4LDU4MjMwNjo1ODIzMDYsNTgyNDY2OjU4MjQ2Niw1ODI4MDU6NTgyODA1LDU4NDIzNjo1ODQyMzYsNTg0OTM4OiJDYWxlbmRhckJvYXJkIiw1ODQ5ODY6NTg0OTg2LDU4NTA5NTo1ODUwOTUsNTg2ODQ2OjU4Njg0Niw1ODkxMTc6NTg5MTE3LDU5MDIwNzo1OTAyMDcsNTkxNDI3OjU5MTQyNyw1OTE1NTU6NTkxNTU1LDU5MTY4NTo1OTE2ODUsNTkyNTAyOjU5MjUwMiw1OTMyOTY6NTkzMjk2LDU5NTg0ODo1OTU4NDgsNTk1OTMyOjU5NTkzMiw1OTkyMTE6NTk5MjExLDU5OTMyMDo1OTkzMjAsNjAxNzA4OjYwMTcwOCw2MDE3MjE6NjAxNzIxLDYwMjIwNzo2MDIyMDcsNjAzNDMwOjYwMzQzMCw2MDM2NDA6NjAzNjQwLDYwNTEyMDo2MDUxMjAsNjA1NTkxOjYwNTU5MSw2MDY2OTk6IlRvZG9MaXN0Iiw2MDY5MTg6NjA2OTE4LDYxMTI4MzoiQWNjb3VudHMiLDYxMjA1Nzo2MTIwNTcsNjE0MjQwOiJDYWxlbmRhckRlZXBCb290Iiw2MTYyNjE6NjE2MjYxLDYxNjU5NDo2MTY1OTQsNjE2OTMxOjYxNjkzMSw2MTc3NDI6NjE3NzQyLDYxNzkyNzo2MTc5MjcsNjE4Njg1OjYxODY4NSw2MTkxOTc6NjE5MTk3LDYxOTY5ODo2MTk2OTgsNjIwNTEzOjYyMDUxMyw2MjIzNTk6NjIyMzU5LDYyNDM4OTo2MjQzODksNjI1OTkyOjYyNTk5Miw2Mjc2NTg6NjI3NjU4LDYzMDAyNTo2MzAwMjUsNjMyOTQ0OjYzMjk0NCw2MzI5NTI6NjMyOTUyLDYzNDMwNDo2MzQzMDQsNjM1NTYzOjYzNTU2Myw2Mzc1OTI6NjM3NTkyLDYzNzcwMzo2Mzc3MDMsNjQzODQ0OjY0Mzg0NCw2NDQ1Njg6NjQ0NTY4LDY0NTc2NTo2NDU3NjUsNjQ1OTMwOjY0NTkzMCw2NDY4NjU6NjQ2ODY1LDY0Nzg5MTo2NDc4OTEsNjQ4MzE0OjY0ODMxNCw2NDkxNTM6NjQ5MTUzLDY0OTI0Mzo2NDkyNDMsNjUwNjA1OjY1MDYwNSw2NTE0NTg6NjUxNDU4LDY1NTI4OTo2NTUyODksNjU1NjgzOiJDYWxlbmRhck1vZHVsZVN0aXRjaGVzIiw2NTY1NjE6Ik93YU0zNjVBY3F1aXNpdGlvbnNDYWNoZSIsNjU4MTkyOjY1ODE5Miw2NjA0Mjc6NjYwNDI3LDY2MTE5NDo2NjExOTQsNjYyMDM3OjY2MjAzNyw2NjI2MjM6NjYyNjIzLDY2MzMyNjo2NjMzMjYsNjYzOTcxOiJDYWxlbmRhckl0ZW1Db250ZXh0TWVudSIsNjY0ODQ5OjY2NDg0OSw2Njg2MDU6NjY4NjA1LDY2ODY0MDo2Njg2NDAsNjY5NTQ5OjY2OTU0OSw2NzE4NDc6NjcxODQ3LDY3NzE1Mzo2NzcxNTMsNjc4MDAxOiJSZWxhdGVkQ29udGVudEluc2lnaHRzT3B4Iiw2Nzk4NTU6Njc5ODU1LDY4MjUwMzo2ODI1MDMsNjg1ODI5OiJNYWlsRnVuY3Rpb25hbEJvb3QiLDY4NzY4NTo2ODc2ODUsNjg4OTM4OjY4ODkzOCw2ODk0OTc6Njg5NDk3LDY4OTkzNjo2ODk5MzYsNjkxODQ5OjY5MTg0OSw2OTY5MTM6Njk2OTEzLDY5NzgyMzo2OTc4MjMsNjk4MDgwOjY5ODA4MCw2OTk0OTk6Njk5NDk5LDcwMTI1NjoiUmVhZGluZ1BhbmVDb252ZXJzYXRpb24iLDcwMjY0OTo3MDI2NDksNzAyOTkwOjcwMjk5MCw3MDYyMzg6NzA2MjM4LDcxMDQ5OTo3MTA0OTksNzExNjAxOjcxMTYwMSw3MTM1Nzg6NzEzNTc4LDcxNTQwMToiUGVvcGxlRnVuY3Rpb25hbEJvb3QiLDcxNzM0MDo3MTczNDAsNzE4ODk2OjcxODg5Niw3MTk0NDc6NzE5NDQ3LDcyMTM4Njo3MjEzODYsNzIyNzIzOjcyMjcyMyw3MjQ0MTI6NzI0NDEyLDcyNTg0MDo3MjU4NDAsNzI4MDc3OjcyODA3Nyw3Mjg4NzY6NzI4ODc2LDcyOTA5MTo3MjkwOTEsNzM0Mjg0OjczNDI4NCw3MzU0ODM6NzM1NDgzLDczNjYyOTo3MzY2MjksNzM4MjU2OjczODI1Niw3Mzg3NjE6NzM4NzYxLDczOTI0NTo3MzkyNDUsNzQwMzUwOjc0MDM1MCw3NDI0NzA6NzQyNDcwLDc0MzA2OToiUmVhZGluZ1BhbmVTdG9yZSIsNzQ3MTM3Ojc0NzEzNyw3NDgzNTk6NzQ4MzU5LDc1MjgzNjo3NTI4MzYsNzU0MjAyOjc1NDIwMiw3NTYyNzM6NzU2MjczLDc1ODM0Nzo3NTgzNDcsNzYwNzYzOiJDYWxlbmRhckNhcmQiLDc2MTI3MTo3NjEyNzEsNzYxNDM0Ojc2MTQzNCw3NjMwNDI6NzYzMDQyLDc2Mzk0ODo3NjM5NDgsNzY2MjA5Ojc2NjIwOSw3NjYyMzU6NzY2MjM1LDc2NjQ4MTo3NjY0ODEsNzY2OTM5Ojc2NjkzOSw3Njk3MDE6NzY5NzAxLDc3MTE3Mjo3NzExNzIsNzcxNDg3Ojc3MTQ4Nyw3NzM5NTQ6NzczOTU0LDc3Njk3Mjo3NzY5NzIsNzc4MjU0Ojc3ODI1NCw3Nzk4NDA6Nzc5ODQwLDc4MTM1Mzo3ODEzNTMsNzgyMjcyOjc4MjI3Miw3ODQyNDU6Nzg0MjQ1LDc4NDg5NTo3ODQ4OTUsNzg1NDk1Ojc4NTQ5NSw3ODU3MDQ6Nzg1NzA0LDc4NjIwOTo3ODYyMDksNzkxNDA3Ojc5MTQwNyw3OTIzNjI6NzkyMzYyLDc5MzY4OTo3OTM2ODksNzk1NTY3Ojc5NTU2Nyw3OTU4Mzg6Nzk1ODM4LDc5NTg3NToiTWFpbERlZXBCb290Iiw4MDE5OTg6ODAxOTk4LDgwMjAxNzo4MDIwMTcsODA0MzU5OjgwNDM1OSw4MDc1MTg6ODA3NTE4LDgwOTI5NTo4MDkyOTUsODE0MTk1OjgxNDE5NSw4MTcyNDg6ODE3MjQ4LDgxOTkxMDo4MTk5MTAsODIwMDIxOiJUaW1lUGFuZWwiLDgyMTAxODo4MjEwMTgsODIxNTU3OjgyMTU1Nyw4MjI3NzI6ODIyNzcyLDgyMzE1Nzo4MjMxNTcsODIzMjk2OjgyMzI5Niw4MjM0NTU6ODIzNDU1LDgyNjYwMTo4MjY2MDEsODI4NDg0OjgyODQ4NCw4Mjk4Njk6ODI5ODY5LDgzMzM1NDo4MzMzNTQsODM0MjcxOjgzNDI3MSw4MzQ2NTg6ODM0NjU4LDgzODA0NDo4MzgwNDQsODM4MTI2OjgzODEyNiw4MzgzMTE6ODM4MzExLDg0NTM2ODo4NDUzNjgsODQ3MDczOjg0NzA3Myw4NDc0OTM6ODQ3NDkzLDg1MTAzODo4NTEwMzgsODUxNzU2Ojg1MTc1Niw4NTI5MjY6ODUyOTI2LDg1NTk3OTo4NTU5NzksODU2Njk1Ojg1NjY5NSw4NTY3ODU6ODU2Nzg1LDg1OTEwOTo4NTkxMDksODU5NTUyOjg1OTU1Miw4NjI1NDU6ODYyNTQ1LDg2MzY1ODo4NjM2NTgsODY0NTY3OiJDYWxlbmRhckZ1bmN0aW9uYWxCb290Iiw4NjQ5ODU6ODY0OTg1LDg2NjY4OTo4NjY2ODksODY3NTg3OiJDYWxlbmRhckJvb2thYmxlVGltZVNoYXJlZCIsODY3OTMxOjg2NzkzMSw4NjgzNjM6ODY4MzYzLDg3NDI5Mzo4NzQyOTMsODc1MjIzOjg3NTIyMyw4NzY2NjI6ODc2NjYyLDg4MDEzNjo4ODAxMzYsODgzODAzOjg4MzgwMyw4ODQwNTk6ODg0MDU5LDg4NDY4OTo4ODQ2ODksODg1MTU4Ojg4NTE1OCw4ODU0ODU6ODg1NDg1LDg4NzA2NTo4ODcwNjUsODg4ODI1Ojg4ODgyNSw4ODkzODI6ODg5MzgyLDg5MDk0MDo4OTA5NDAsODkxNDgxOjg5MTQ4MSw4OTE1MDA6ODkxNTAwLDg5MjAzMTo4OTIwMzEsODkyMjYxOiJDYWxlbmRhckJvYXJkQXNzZXRzIiw4OTI5MjE6ODkyOTIxLDg5NjY0ODo4OTY2NDgsODk3MDgzOiJUeHAiLDg5NzE1MTo4OTcxNTEsODk3NTc3Ojg5NzU3Nyw4OTg1MjI6ODk4NTIyLDkwMTU1Nzo5MDE1NTcsOTAxNTg2OjkwMTU4Niw5MDE5NDY6OTAxOTQ2LDkwMzU1Nzo5MDM1NTcsOTAzNzE2OjkwMzcxNiw5MDQ2Njk6OTA0NjY5LDkwNjAxMDo5MDYwMTAsOTA3NTU0OjkwNzU1NCw5MDc1NjA6OTA3NTYwLDkwODQ5ODo5MDg0OTgsOTA4OTAzOjkwODkwMyw5MDk0Mzk6OTA5NDM5LDkwOTUwODo5MDk1MDgsOTE0MTI2OjkxNDEyNiw5MTczNDA6OTE3MzQwLDkxNzM1MjoiQ2FsZW5kYXJCb290Iiw5MTgwMTY6OTE4MDE2LDkxODY0Mjo5MTg2NDIsOTIwMTU3OjkyMDE1Nyw5MjEyNjY6OTIxMjY2LDkyMTU0Mjo5MjE1NDIsOTIyNTQyOiJUaW1lUGFuZWxFdmVudERldGFpbHMiLDkyMjY2Mjo5MjI2NjIsOTIzMTMzOjkyMzEzMyw5MjMzODQ6OTIzMzg0LDkyNDczMzo5MjQ3MzMsOTI3NDA1OjkyNzQwNSw5MjkxNTI6OTI5MTUyLDkzMjI0Mzo5MzIyNDMsOTM0ODc3OjkzNDg3Nyw5MzY1OTY6OTM2NTk2LDkzNjgyNTo5MzY4MjUsOTM4MDYyOiJDYWxlbmRhclN1cmZhY2VJdGVtQ29udGV4dE1lbnVzIiw5NDAyNTU6OTQwMjU1LDk0MTgxNTo5NDE4MTUsOTQ0NDY0Ojk0NDQ2NCw5NDUwNDI6OTQ1MDQyLDk0NTk5OTo5NDU5OTksOTQ2MDM0Ojk0NjAzNCw5NTI1NDQ6OTUyNTQ0LDk1NTA2NTo5NTUwNjUsOTU1MTEwOjk1NTExMCw5NTU4NjY6OTU1ODY2LDk1NjE2OTo5NTYxNjksOTU5NzQ2Ojk1OTc0Niw5NjA5ODk6OTYwOTg5LDk2MjI2MToiUmVsYXRlZENvbnRlbnQiLDk2MjQxODo5NjI0MTgsOTYzNDgzOjk2MzQ4Myw5NjYyMDQ6OTY2MjA0LDk2NzQ4NDo5Njc0ODQsOTY5OTE4Ojk2OTkxOCw5NzQ1NDA6OTc0NTQwLDk3NTA4Njo5NzUwODYsOTgxNTIyOjk4MTUyMiw5ODI0MjE6OTgyNDIxLDk4MzgyMjo5ODM4MjIsOTg0MTYxOjk4NDE2MSw5ODQ2OTU6OTg0Njk1LDk4NjU4OTo5ODY1ODksOTg4ODg3Ojk4ODg4Nyw5ODg5MjY6OTg4OTI2LDk4OTIyNTo5ODkyMjUsOTkwMzk3OiJQZW9wbGVCb290Iiw5OTI5Njc6OTkyOTY3LDk5MzI0Mjo5OTMyNDIsOTkzNDkzOjk5MzQ5Myw5OTM2MDQ6OTkzNjA0LDk5NzQ3MTo5OTc0NzEsOTk3ODM1Ojk5NzgzNX07YS5mLmNvbXBhdD0oZSx0KT0+eygidW5kZWZpbmVkIj09dHlwZW9mIGRvY3VtZW50fHwiQUcwOCIhPT0oZG9jdW1lbnQucXVlcnlTZWxlY3RvcigibWV0YVtuYW1lPSdlbnZpcm9ubWVudCddIikmJmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIm1ldGFbbmFtZT0nZW52aXJvbm1lbnQnXSIpLmdldEF0dHJpYnV0ZSgiY29udGVudCIpKSYmIkFHMDkiIT09KGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIm1ldGFbbmFtZT0nZW52aXJvbm1lbnQnXSIpJiZkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJtZXRhW25hbWU9J2Vudmlyb25tZW50J10iKS5nZXRBdHRyaWJ1dGUoImNvbnRlbnQiKSkpJiZkW2VdJiZ0LnB1c2goc2VsZi5fbG9jU3RyaW5ncy5hZGRMb2NzdHJpbmdBc3NldCgiLi4vcmVzb3VyY2VzL2xvY2FsZS9bbG9jYWxlXS9vd2EuW25hbWVdLm0uanNvbiIucmVwbGFjZSgvXFtuYW1lXF0vZyxkW2VdfHxlKSkpfSwidW5kZWZpbmVkIiE9dHlwZW9mIHNlbGYmJnNlbGYuYm9vdHN0cmFwT3B0aW9ucyYmc2VsZi5ib290c3RyYXBPcHRpb25zLnNjcmlwdEJhc2VVcmwmJihhLnA9c2VsZi5ib290c3RyYXBPcHRpb25zLnNjcmlwdEJhc2VVcmwpLHU9ZT0+bmV3IFByb21pc2UoKCh0LG4pPT57dmFyIHI9YS5taW5pQ3NzRihlKSxvPWEucCtyO2lmKCgoZSx0KT0+e2Zvcih2YXIgbj1kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgibGluayIpLHI9MDtyPG4ubGVuZ3RoO3IrKyl7dmFyIG89KGE9bltyXSkuZ2V0QXR0cmlidXRlKCJkYXRhLWhyZWYiKXx8YS5nZXRBdHRyaWJ1dGUoImhyZWYiKTtpZigic3R5bGVzaGVldCI9PT1hLnJlbCYmKG89PT1lfHxvPT09dCkpcmV0dXJuIGF9dmFyIGk9ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInN0eWxlIik7Zm9yKHI9MDtyPGkubGVuZ3RoO3IrKyl7dmFyIGE7aWYoKG89KGE9aVtyXSkuZ2V0QXR0cmlidXRlKCJkYXRhLWhyZWYiKSk9PT1lfHxvPT09dClyZXR1cm4gYX19KShyLG8pKXJldHVybiB0KCk7KChlLHQsbixyKT0+e3ZhciBvLGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibGluayIpO2kucmVsPSJzdHlsZXNoZWV0IixpLnR5cGU9InRleHQvY3NzIixpLm9uZXJyb3I9aS5vbmxvYWQ9bz0+e2lmKGkub25lcnJvcj1pLm9ubG9hZD1udWxsLCJsb2FkIj09PW8udHlwZSluKCk7ZWxzZXt2YXIgYT1vJiYoImxvYWQiPT09by50eXBlPyJtaXNzaW5nIjpvLnR5cGUpLHM9byYmby50YXJnZXQmJm8udGFyZ2V0LmhyZWZ8fHQsYz1uZXcgRXJyb3IoIkxvYWRpbmcgQ1NTIGNodW5rICIrZSsiIGZhaWxlZC5cbigiK3MrIikiKTtjLmNvZGU9IkNTU19DSFVOS19MT0FEX0ZBSUxFRCIsYy50eXBlPWEsYy5yZXF1ZXN0PXMsaS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGkpLHIoYyl9fSxpLmhyZWY9dCwwIT09aS5ocmVmLmluZGV4T2Yod2luZG93LmxvY2F0aW9uLm9yaWdpbisiLyIpJiYoaS5jcm9zc09yaWdpbj0iYW5vbnltb3VzIiksbz1pLHNlbGYuY3NzTGlua0FwcGVuZD9zZWxmLmNzc0xpbmtBcHBlbmQobyk6KHNlbGYuY3NzTGlua0NhY2hlZD1zZWxmLmNzc0xpbmtDYWNoZWR8fFtdLHNlbGYuY3NzTGlua0NhY2hlZC5wdXNoKG8pLGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQobykpfSkoZSxvLHQsbil9KSksbD17Njg2MDg4OjB9LGEuZi5taW5pQ3NzPShlLHQpPT57bFtlXT90LnB1c2gobFtlXSk6MCE9PWxbZV0mJns1ODE6MSwxNTYwOjEsMzQ2OToxLDQwOTc6MSw3NDE2OjEsODUwNDoxLDg1MjY6MSwxMDQ4MjoxLDEwNzExOjEsMTE5NTc6MSwxNjU5OToxLDIwMzM4OjEsMjA3MzM6MSwyMTA4NzoxLDIyMTA4OjEsMjM0MzM6MSwyMzczNzoxLDI0NzcyOjEsMjg1NTU6MSwyOTM1MzoxLDMxOTQ4OjEsMzQ5MjI6MSw0MDE3NjoxLDQwOTYyOjEsNDQ4OTA6MSw0NjEyMToxLDQ2NzEzOjEsNDgwNTI6MSw0ODIyOToxLDQ5MTM3OjEsNTM5NTA6MSw1NTgzMDoxLDU2MjQ4OjEsNjAzMjQ6MSw2MDU2NToxLDYwOTAzOjEsNjEwOTU6MSw2MjI3NToxLDYyNTAyOjEsNjM1MzY6MSw2NzIxNjoxLDY3MzcxOjEsNjg1NzA6MSw3MDczOToxLDc1MTEwOjEsNzYyMDQ6MSw3NjI5NjoxLDc2NTY4OjEsNzg5Mzk6MSw4MDAwNjoxLDgwMzQ3OjEsODIwMzg6MSw4MjkyNjoxLDgzNTQ3OjEsODU0OTU6MSw4NzgzOToxLDg5MTI1OjEsOTQ1MjQ6MSw5NTIyMjoxLDEwMDE5MDoxLDEwNDY2NDoxLDEwOTkxMDoxLDExMDE0NjoxLDExMTE2ODoxLDExMzM5NToxLDExNDQzNzoxLDExNDkyMjoxLDExODkxMDoxLDExOTAwNToxLDExOTUyODoxLDEyMDgxNToxLDEyMTM2NjoxLDEyMzU2NDoxLDEyMzY0OToxLDEyNTQzMzoxLDEyNTk1MzoxLDEyNzQ2MToxLDEyODE3NToxLDEyODQ1MDoxLDEyOTI1NjoxLDEzMDM1ODoxLDEzMTk1ODoxLDEzMjQwMDoxLDEzMjQ1MDoxLDEzMjY4OToxLDEzNDM3MToxLDEzNTA1MDoxLDEzNjgxMjoxLDEzODk2NDoxLDE0MDEzMToxLDE0Mjc5NDoxLDE0NTg5MzoxLDE0ODA1MToxLDE0ODQ3NToxLDE0OTQ4NzoxLDE0OTcwNToxLDE1MTY5MzoxLDE1MzAzNDoxLDE1NTc0MToxLDE1NzA4MToxLDE1ODA3MDoxLDE2MjcxNDoxLDE2Mjc1NDoxLDE2ODczNjoxLDE2OTAxMDoxLDE2OTM4NDoxLDE4MTI1NzoxLDE4MTY3NjoxLDE4MzI4MzoxLDE4NjU1OToxLDE4ODMyMjoxLDE4ODYxNToxLDE4ODc2NjoxLDE5MDY5MzoxLDE5MTQzMzoxLDE5Mjc1MzoxLDE5Mzc4NzoxLDE5NDM0ODoxLDE5NzQ2MzoxLDE5ODY5OToxLDE5OTY5ODoxLDIwMjAyNDoxLDIwMjUzMDoxLDIwMzE0MjoxLDIwNDk1NjoxLDIwNTM2NDoxLDIwNjcxMToxLDIwNzI2NjoxLDIwODM2ODoxLDIwOTAwNDoxLDIwOTczMToxLDIxMTMxNDoxLDIxMzg1MzoxLDIxNDA1OToxLDIxNjYwMzoxLDIxNzY2MDoxLDIxOTI2NjoxLDIyMzg1MzoxLDIyNTkxMzoxLDIyNjk4MjoxLDIyODI2OToxLDIyOTEwODoxLDIzMTY5NDoxLDIzMjg5NjoxLDIzMzIwMDoxLDIzNDcyODoxLDIzOTI2NjoxLDI0Mjc3NzoxLDI0MzM1MzoxLDI0NDAwMjoxLDI0NDYwNDoxLDI0NDY5NToxLDI0NjMxMzoxLDI0NjY5MDoxLDI1MTE5NDoxLDI1MjQxNToxLDI1NDY0NToxLDI1NzMzOToxLDI2NDU0ODoxLDI2NTMwODoxLDI2NTMxMDoxLDI2NjYxNjoxLDI2OTI2NzoxLDI2OTM4NToxLDI3MTA0NjoxLDI3Mjc3ODoxLDI3Mjk1NzoxLDI3MzExNjoxLDI3MzYxMzoxLDI3NDY2MzoxLDI3OTI0OToxLDI4MjI2NzoxLDI4MjQ2MzoxLDI4MzE2NDoxLDI4Mzk1MzoxLDI4NTMyMDoxLDI4ODc4NToxLDI4OTEyMDoxLDI4OTYwOToxLDI5MDE1MjoxLDI5MDU5MToxLDI5MTIxODoxLDI5MTI3MToxLDI5MzM4ODoxLDI5Nzg2NjoxLDI5ODMyOToxLDMwMjE2NDoxLDMwNDU5MToxLDMwNDY0MToxLDMwNTg2MToxLDMxMDk0NjoxLDMxMjE3ODoxLDMxMjM1MjoxLDMxMzc1MjoxLDMxNDAyNToxLDMxNDQ1MjoxLDMxNTkyMDoxLDMxNjczOToxLDMxOTEwOToxLDMxOTQwMDoxLDMyMTIxNjoxLDMyMTU2MjoxLDMyMzQxMjoxLDMyODI3MToxLDMzMzgwMzoxLDMzNzU0NToxLDMzNzY2NDoxLDMzNzk2ODoxLDMzODYzNDoxLDMzOTI0OToxLDM0MzIxNzoxLDM0Mzg1MDoxLDM0NDc2MzoxLDM0NjM1MzoxLDM1MTY3ODoxLDM1MTg4MDoxLDM1MjUzNjoxLDM1MzIwOToxLDM1MzY4NjoxLDM1Mzc3MDoxLDM1NDIzOToxLDM1NTI3ODoxLDM1NzcxMjoxLDM2MTA4NjoxLDM2MjUxMToxLDM2NDU4NToxLDM2NTg0NDoxLDM2NzA0NjoxLDM2ODQ2NToxLDM2ODc0NzoxLDM3MDYwNToxLDM3MTA3MToxLDM3MTc5NToxLDM3MjI1MDoxLDM3MzY0NjoxLDM3MzgwNzoxLDM3NTYwMjoxLDM3NzYxNToxLDM4MTAzOToxLDM4MTg4OToxLDM4MjYzMDoxLDM4MzA1MToxLDM4MzUzNToxLDM4NTU1MToxLDM5MTMwNjoxLDM5NTYyNjoxLDQwMzYyMToxLDQwODA2ODoxLDQwOTU0NzoxLDQxMDQ2OToxLDQxMzg3MjoxLDQxNDI4NDoxLDQyMDA3MDoxLDQyMTIxNDoxLDQyNDc0MToxLDQyNDk0MjoxLDQyOTI0NjoxLDQyOTc5NzoxLDQzMDIzNzoxLDQzMTgyMjoxLDQzMzQ1NzoxLDQzNDkwMjoxLDQzOTAxMzoxLDQzOTI1NzoxLDQ0MDY5MzoxLDQ0MDg3MToxLDQ0MzY1NzoxLDQ0Njg1NzoxLDQ0OTE1ODoxLDQ0OTU4OToxLDQ1MjAyNToxLDQ1MjgxNjoxLDQ1NzQwNDoxLDQ1NzUyOToxLDQ1ODEwNjoxLDQ1ODI5NDoxLDQ1OTc3OToxLDQ2MDA2NzoxLDQ2MDI2NDoxLDQ2MTgzNToxLDQ2MTkzMjoxLDQ2MjcyMjoxLDQ2NTU5NjoxLDQ2NjEwNzoxLDQ2NzUyODoxLDQ3MDQ3MToxLDQ3MTE4ODoxLDQ3NDkwMjoxLDQ3NjY1ODoxLDQ3NjY2NDoxLDQ3NjgxMzoxLDQ3OTAwOToxLDQ3OTE2OToxLDQ4Mjc1NjoxLDQ4MzIwODoxLDQ4MzUyMjoxLDQ4NjU4MzoxLDQ4ODE2OToxLDQ5MjM1MDoxLDQ5NDkxNjoxLDQ5NTMxNDoxLDQ5NzQ1MDoxLDQ5OTA2OToxLDQ5OTUxMToxLDQ5OTk5NToxLDUwMTY5NzoxLDUwMjkxMjoxLDUwMzU3NDoxLDUwNDIwNjoxLDUwNjc4MzoxLDUwODE1MToxLDUxMzUxMToxLDUxNDk4MDoxLDUxODE0NToxLDUxODI0MjoxLDUxOTQyNDoxLDUyMDMzNToxLDUyMDkyMToxLDUyMjUwNToxLDUyMjY1NDoxLDUyMzE3NjoxLDUyNTI1ODoxLDUyNjM3ODoxLDUzNDYzNToxLDUzNzQ4MDoxLDU0NzY5MToxLDU0ODgzNDoxLDU0ODg1MzoxLDU1MjU2ODoxLDU1MjkzNzoxLDU1OGUzOjEsNTYyMDUzOjEsNTYyNjA4OjEsNTYzNjIwOjEsNTY1NjYwOjEsNTY2MjI3OjEsNTY3MTY1OjEsNTY5NjMzOjEsNTcxMjQzOjEsNTcxODQ4OjEsNTczNjcwOjEsNTc0MzAxOjEsNTc0NTg4OjEsNTc2MTEyOjEsNTc2MTE4OjEsNTgxMTI0OjEsNTgyNDY2OjEsNTgyODA1OjEsNTg0OTM4OjEsNTg1MDk1OjEsNTg2ODQ2OjEsNTg5MTE3OjEsNTkxNDI3OjEsNTkxNjg1OjEsNTkzMjk2OjEsNTkzNTM3OjEsNTk1ODQ4OjEsNTk1OTMyOjEsNTk5MjExOjEsNTk5MzIwOjEsNjAxNzA4OjEsNjAxNzIxOjEsNjAzNjQwOjEsNjA1NTkxOjEsNjA2Njk5OjEsNjExMjgzOjEsNjEyMDU3OjEsNjE0MjQwOjEsNjE2MjYxOjEsNjE2NTk0OjEsNjE3NzQyOjEsNjE5MTk3OjEsNjIxOTEyOjEsNjIyMzU5OjEsNjI0MDEwOjEsNjI0Mzg5OjEsNjI1OTkyOjEsNjMwMDI1OjEsNjMyOTQ0OjEsNjM0MzA0OjEsNjM1NTYzOjEsNjM3NTkyOjEsNjQ1OTMwOjEsNjQ2ODY1OjEsNjQ3NjA5OjEsNjQ4MzE0OjEsNjQ5MTUzOjEsNjUwNjA1OjEsNjUxNDU4OjEsNjUzNzM2OjEsNjU1NjgzOjEsNjYwNDI3OjEsNjYxMTk0OjEsNjYyMDM3OjEsNjYyNjIzOjEsNjYzMzI2OjEsNjYzOTcxOjEsNjY4NjA1OjEsNjY4NjQwOjEsNjY4Nzc2OjEsNjczMzE5OjEsNjc3MTUzOjEsNjc4MDAxOjEsNjc5ODU1OjEsNjgwMDAzOjEsNjg1ODI5OjEsNjg5NDk3OjEsNjg5OTM2OjEsNjkxMjAxOjEsNjk2MjQ1OjEsNjk2OTEzOjEsNjk3ODIzOjEsNjk4MDgwOjEsNjk4ODkwOjEsNzAxMjU2OjEsNzAyNjQ5OjEsNzAyOTkwOjEsNzAzMzYyOjEsNzA2MjM4OjEsNzExNjAxOjEsNzE3MzQwOjEsNzE4ODk2OjEsNzE5NDQ3OjEsNzI0NDEyOjEsNzI1ODQwOjEsNzI4MDc3OjEsNzI4ODc2OjEsNzMyMTQ0OjEsNzM0Mjg0OjEsNzM1NDgzOjEsNzM2NjI5OjEsNzM3NTAwOjEsNzM4MjU2OjEsNzM4NzYxOjEsNzM5MjQ1OjEsNzQwMzUwOjEsNzQyNDcwOjEsNzQzMDY5OjEsNzQ3MTM3OjEsNzQ4MzU5OjEsNzUwMTA4OjEsNzUyODM2OjEsNzU0MjAyOjEsNzU2MjczOjEsNzU4MzQ3OjEsNzYwNzYzOjEsNzYzMDQyOjEsNzYzOTQ4OjEsNzY2MjM1OjEsNzY2NDgxOjEsNzY2OTM5OjEsNzY5NzAxOjEsNzcxMTcyOjEsNzcxNDg3OjEsNzczOTU0OjEsNzc2OTcyOjEsNzc3MDY0OjEsNzc5ODQwOjEsNzgwNDY5OjEsNzgxMzUzOjEsNzg0ODk1OjEsNzg1NzA0OjEsNzg5OTQ3OjEsNzkxNDA3OjEsNzkyMzYyOjEsNzk1NTY3OjEsNzk1ODc1OjEsODAyMDE3OjEsODA0MzU5OjEsODA3NTE4OjEsODA5NjA5OjEsODExODY2OjEsODE3MjQ4OjEsODIwMDIxOjEsODIxMDE4OjEsODIxMTM2OjEsODIxNTU3OjEsODIyNzcyOjEsODIzMjk2OjEsODIzNzAzOjEsODI2NjAxOjEsODI4NDg0OjEsODM0MjcxOjEsODM4MTI2OjEsODM4MzExOjEsODQwMzIyOjEsODQzOTA2OjEsODQ1MzY4OjEsODQ3MDczOjEsODQ3NDkzOjEsODUxMDM4OjEsODUzMjAyOjEsODU0NTU1OjEsODU1OTc5OjEsODU2Njk1OjEsODU5MTA5OjEsODYzMTYwOjEsODYzNjU4OjEsODY0OTg1OjEsODY2Njg5OjEsODY3OTMxOjEsODc0MjkzOjEsODc2NjYyOjEsODgwMTM2OjEsODgzNDMzOjEsODg0MDU5OjEsODg1MTU4OjEsODg1NDg1OjEsODg5MTY0OjEsODg5MzgyOjEsODkwOTQwOjEsODkxNDgxOjEsODkxNTAwOjEsODkyMjYxOjEsODk2NjQ4OjEsODk3MDgzOjEsODk3MTUxOjEsODk3NTc3OjEsODk4NTIyOjEsOTAxNTU3OjEsOTAxNTg2OjEsOTAxOTQ2OjEsOTA5NDM5OjEsOTA5NTA4OjEsOTExMTIxOjEsOTEyNjU0OjEsOTE3MzQwOjEsOTE3MzUyOjEsOTE4MDE2OjEsOTE5MDEyOjEsOTIwMTU3OjEsOTIxMjY2OjEsOTIxNTQyOjEsOTIyNTQyOjEsOTIyNjYyOjEsOTIzMzg0OjEsOTI0NzMzOjEsOTI3NDA1OjEsOTI5MTUyOjEsOTI5ODY0OjEsOTMyMTY2OjEsOTMyMjQzOjEsOTM0ODc3OjEsOTM2NTk2OjEsOTQwMjU1OjEsOTQ0NDY0OjEsOTQ1MDQyOjEsOTU1MTEwOjEsOTU1ODY2OjEsOTU2MTY5OjEsOTU5NzQ2OjEsOTYyMjYxOjEsOTYyNDE4OjEsOTYzNDgzOjEsOTY3NDc5OjEsOTY3NDg0OjEsOTY5OTE4OjEsOTc1MDg2OjEsOTgxNTIyOjEsOTgyNDIxOjEsOTgzODIyOjEsOTg0Njk1OjEsOTg4ODg3OjEsOTg4OTI2OjEsOTg5MjI1OjEsOTkwMzk3OjEsOTkyOTY3OjEsOTkzNjA0OjEsOTk1Mjc4OjEsOTk2NjI2OjEsOTk3ODM1OjF9W2VdJiZ0LnB1c2gobFtlXT11KGUpLnRoZW4oKCgpPT57bFtlXT0wfSksKHQ9Pnt0aHJvdyBkZWxldGUgbFtlXSx0fSkpKX0sKCgpPT57YS5iPWRvY3VtZW50LmJhc2VVUkl8fHNlbGYubG9jYXRpb24uaHJlZjt2YXIgZT17Njg2MDg4OjB9O2EuZi5qPSh0LG4pPT57dmFyIHI9YS5vKGUsdCk/ZVt0XTp2b2lkIDA7aWYoMCE9PXIpaWYociluLnB1c2goclsyXSk7ZWxzZSBpZigvXigoMTIwOHwyNTI0KTE1fCg2NzIxfDgxMTg2fDk5NjYyKTZ8MTk4Njk5fDM0NjkpJC8udGVzdCh0KSllW3RdPTA7ZWxzZXt2YXIgbz1uZXcgUHJvbWlzZSgoKG4sbyk9PnI9ZVt0XT1bbixvXSkpO24ucHVzaChyWzJdPW8pO3ZhciBpPWEucCthLnUodCkscz1uZXcgRXJyb3I7YS5sKGksKG49PntpZihhLm8oZSx0KSYmKDAhPT0ocj1lW3RdKSYmKGVbdF09dm9pZCAwKSxyKSl7dmFyIG89biYmKCJsb2FkIj09PW4udHlwZT8ibWlzc2luZyI6bi50eXBlKSxpPW4mJm4udGFyZ2V0JiZuLnRhcmdldC5zcmM7cy5tZXNzYWdlPSJMb2FkaW5nIGNodW5rICIrdCsiIGZhaWxlZC5cbigiK28rIjogIitpKyIpIixzLm5hbWU9IkNodW5rTG9hZEVycm9yIixzLnR5cGU9byxzLnJlcXVlc3Q9aSxyWzFdKHMpfX0pLCJjaHVuay0iK3QsdCl9fSxhLkYuaj10PT57aWYoIShhLm8oZSx0KSYmdm9pZCAwIT09ZVt0XXx8L14oKDEyMDh8MjUyNCkxNXwoNjcyMXw4MTE4Nnw5OTY2Mik2fDE5ODY5OXwzNDY5KSQvLnRlc3QodCkpKXtlW3RdPW51bGw7dmFyIG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibGluayIpO24uY3Jvc3NPcmlnaW49ImFub255bW91cyIsYS5uYyYmbi5zZXRBdHRyaWJ1dGUoIm5vbmNlIixhLm5jKSxuLnJlbD0icHJlZmV0Y2giLG4uYXM9InNjcmlwdCIsbi5ocmVmPWEucCthLnUodCksZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChuKX19O3ZhciB0PSh0LG4pPT57dmFyIHIsbyxbaSxzLGNdPW4sdT0wO2lmKGkuc29tZSgodD0+MCE9PWVbdF0pKSl7Zm9yKHIgaW4gcylhLm8ocyxyKSYmKGEubVtyXT1zW3JdKTtpZihjKWMoYSl9Zm9yKHQmJnQobik7dTxpLmxlbmd0aDt1Kyspbz1pW3VdLGEubyhlLG8pJiZlW29dJiZlW29dWzBdKCksZVtvXT0wfSxuPXNlbGYud2VicGFja0NodW5rT3dhPXNlbGYud2VicGFja0NodW5rT3dhfHxbXTtuLmZvckVhY2godC5iaW5kKG51bGwsMCkpLG4ucHVzaD10LmJpbmQobnVsbCxuLnB1c2guYmluZChuKSl9KSgpLGEubmM9dm9pZCAwLEg9ezE5OTEwNzpbNjI0MDEwXSwyODMxNjQ6WzYyNDAxMF0sMzQyMjU1Ols2MjQwMTBdLDQ0MjEyNzpbOTMyNTU3LDM5OTQ1OCwxNTk1MTAsMTU1ODY2LDkwNDY2OCw4OTU2NzRdLDQ1MDI5MTpbMzQyMTA2LDM3NzcwNiw3ODEyMjddLDUwODE1MTpbNzM2Njk2LDY3MDE1NCw1NDA2NV0sNzI4NDgwOls3MzY2OTYsMjA0NDA3XSw3NDQ1OTY6Wzc2Nzg0NF0sODkzNTE0Ols5MzI1NTcsMzk5NDU4LDE1OTUxMCwxNTU4NjYsOTA0NjY4LDg5NTY3NF0sOTI5NDY1Ols1MjYzNywzOTk0NTgsNzkxNTY2LDk3MTE2OCw5MTk5MjQsMjc1MzgzXSw5ODg4ODc6WzczNjY5Niw2NzAxNTQsNTQwNjVdfSxhLmYucHJlZmV0Y2g9KGUsdCk9PlByb21pc2UuYWxsKHQpLnRoZW4oKCgpPT57dmFyIHQ9SFtlXTtBcnJheS5pc0FycmF5KHQpJiZ0Lm1hcChhLkUpfSkpO3ZhciBmPXt9OygoKT0+eyJ1c2Ugc3RyaWN0IjthLnIoZik7dmFyIGU9YSg0OTI5ODIpO2EucD0oMCxlLlJzKSgpO2EoNzY3MSksYSgxMzg3Mik7dmFyIHQ9YSg3NzIxOTYpLG49YSgyMDQ5MjMpLHI9YSgyNjkzOTkpLG89YSg4ODUxODkpLGk9YSg4Njk0MTcpLHM9YSg1NjI2MTcpLGM9YSgzNjY5NTMpO3ZhciB1PWEoNjkzNjk2KTtjb25zdCBsPVsiL215ZGF5IiwiL2NhbGVuZGFyd2lkZ2V0IiwiL2luc2lnaHRzIl0sSD0iWC1NZXNzYWdlLUNvdW50IixkPSJYLUZvbGRlci1Db3VudCI7ZnVuY3Rpb24gUyhlLHQsbixyLG8pe2lmKGUuYXBwZW5kKCJYLUpzLUV4cGVyaW1lbnQiLCI1IiksdCYmMCE9dC50b0xvd2VyQ2FzZSgpLmluZGV4T2YoIi9tYWlsIikpe2UuYXBwZW5kKGQsIjAiKSxlLmFwcGVuZChILCIwIik7Y29uc3Qgbj10LnRvTG93ZXJDYXNlKCk7KDA9PW4uaW5kZXhPZigiL2NhbGVuZGFyIil8fDA9PW4uaW5kZXhPZigiL2hvc3RlZC9jYWxlbmRhciIpfHwwPT1uLmluZGV4T2YoIi9vcHgiKSYmbC5zb21lKChlPT5uLmluY2x1ZGVzKGUpKSkpJiZlLmFwcGVuZCgiWC1DYWxlbmRhci1Gb2xkZXJzIiwiMSIpfWVsc2UgbiYmZS5hcHBlbmQoSCxgJHtmdW5jdGlvbihlLHQpe2NvbnN0IG49dD82NToyOSxyPU1hdGguY2VpbCgoZSsyNTApL24pO3JldHVybiByPDEwPzEwOnJ9KG4scil9YCksbyYmZS5hcHBlbmQoZCxvKX12YXIgcD1hKDk4MTM5MyksQz1hKDQ1ODgxNyk7ZnVuY3Rpb24gdihlLG4pe3JldHVybiEvW15cdTAwMDAtXHUwMGZmXS9nLnRlc3Qobil8fCgoMCx0LkMpKCJJU084ODU5VmFsaWRIZWFkZXJGb3Jib290RmxpZ2h0cyIse2Vycm9ySGVhZGVyTmFtZTplLGVycm9ySGVhZGVyVmFsdWU6bn0se2lzQ29yZTohMH0pLCExKX1mdW5jdGlvbiBoKHQsbixyLG8sYSxsKXtjb25zdCBIPSgwLHUuVTcpKCk7aWYoSC5sZW5ndGg+MCl7Y29uc3QgZT1ILmpvaW4oIiwiKTt2KCJYLU9XQS1ib290ZmxpZ2h0cyIsZSkmJm4uc2V0KCJYLU9XQS1ib290ZmxpZ2h0cyIsZSl9cmV0dXJuIFMobix3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUsKDAsZS5QNikoKSwoMCxwLmkpKCksKDAsQy5tbikoImluaXRpYWxmb2xkZXJzIikpLGZ1bmN0aW9uKHQsbixyLG8sYSx1KXtjb25zdCBsPSgwLGMuWikoKDAsZS5kcSkoKSkrIi9zdGFydHVwZGF0YS5hc2h4IjtyZXR1cm4gbi5hcHBlbmQoIngtb3dhLWhvc3QtYXBwIiwoMCxzLkopKCkpLG4uYXBwZW5kKCJ4LW93YS1ob3N0ZWQtdXgiLCgwLHMuTikoKSksKDAsaS5TKSgiU3RhcnR1cERhdGEiLHZvaWQgMCx7ZW5kcG9pbnQ6bCxoZWFkZXJzOm4scmV0dXJuRnVsbFJlc3BvbnNlT25TdWNjZXNzOiEwLHNob3VsZFJldHJ5OmU9PlByb21pc2UucmVzb2x2ZShmdW5jdGlvbihlKXtyZXR1cm4gMjA0PT1lfHw0MDQ9PWV8fGU+PTUwMH0oZSkpLG9uQmVmb3JlUmV0cnk6ZT0+ci5vbkJlZm9yZVJldHJ5KGwsZSksYXV0aE5lZWRlZE9uVW5BdXRob3JpemVkOiExLHJldHJ5Q291bnQ6NSxtYWlsYm94SW5mbzp0fSkudGhlbigoZT0+e2lmKHUoZSksIWUpdGhyb3cgbmV3IEVycm9yKCJOb1Jlc3BvbnNlIik7aWYoMjAwIT1lLnN0YXR1cyl0aHJvdyByLmNyZWF0ZVN0YXR1c0Vycm9yTWVzc2FnZShlKTtyZXR1cm4gYShlLmhlYWRlcnMpLGUuanNvbigpLmNhdGNoKChlPT57dmFyIHQ7Y29uc3Qgbj1uZXcgRXJyb3IoIkludmFsaWRKc29uIikscj10eXBlb2YgZTt0aHJvdyBuLmRpYWdub3N0aWNJbmZvPWBKc29uRXJyb3I9JHsic3RyaW5nIj09cj9lOihudWxsPT1lP3ZvaWQgMDplLm1lc3NhZ2UpfHxyfTtvbmxpbmU9JHtudWxsPT0odD1udWxsPT1zZWxmP3ZvaWQgMDpzZWxmLm5hdmlnYXRvcik/dm9pZCAwOnQub25MaW5lfTtgLG59KSl9KSwoZT0+e3Rocm93IHIuY3JlYXRlU3RhdHVzRXJyb3JNZXNzYWdlKGUpfSkpLnRoZW4obykuY2F0Y2goKGU9PlByb21pc2UucmVqZWN0KHIuY3JlYXRlQm9vdEVycm9yKGUsIlN0YXJ0dXBEYXRhIixsLDApKSkpfSh0LG4scixvLGEsbCl9dmFyIG09YSg3NTgwNTcpLEk9YSg1MTg4MjApLEE9YSg1MzkxNjEpO2Z1bmN0aW9uIGcoZSx0KXtyZXR1cm4obnVsbD09ZT92b2lkIDA6ZS5oZWFkZXJzKSYmZS5oZWFkZXJzLmdldCh0KX12YXIgUj1hKDcxODIyNCk7Y29uc3QgTj1bIlgtQ2FsY3VsYXRlZEJFVGFyZ2V0IiwiWC1PV0EtQ29ycmVsYXRpb25JZCIsIlgtTVNFZGdlLVJlZiIsImNvbnRlbnQtZW5jb2RpbmciLCJjb250ZW50LWxlbmd0aCIsImNvbnRlbnQtdHlwZSIsIlgtT1dBLVZlcnNpb24iLCJYLU9XQUVycm9yTWVzc2FnZUlEIiwieC1kaWFnaW5mbyIsIngtYmVza3UiLCJ4LW93YS1kaWFnbm9zdGljc2luZm8iLCJYLUNETi1Qcm92aWRlciJdO2xldCBVPSIiO2Z1bmN0aW9uIHkoZSx0KXtVKz1gJiR7ZX09JHt0fWB9Y29uc3QgSz1bIlgtQkVTZXJ2ZXIiLCJYLUZFU2VydmVyIiwiWC1NU0VkZ2UtUmVmIl0sdz1bNDAzLDQwNCw1MDNdO2Z1bmN0aW9uIGIoZSl7bGV0IHQ9IiI7aWYoZS5zdGF0dXMpe2lmKHQrPWUuc3RhdHVzLHcuaW5kZXhPZihlLnN0YXR1cyk+LTEpe3QrPSJ8Ijtmb3IobGV0IG49MDtuPEsubGVuZ3RoO24rKyl7Y29uc3Qgcj1LW25dO2lmKGcoZSxyKSl7dCs9cjticmVha319fX1lbHNlIGUubmV0d29ya0Vycm9yP3Q9Ik5ldHdvcmtSZXNwb25zZUVycm9yIjoodD0iVW5rbm93blJlc3BvbnNlRXJyb3IiLHkoImJyZXMiLE9iamVjdC5rZXlzKGUpLmpvaW4oInwiKSkpO3JldHVybiBuPW5ldyBFcnJvcih0KSxyPWUsbi5yZXNwb25zZT1yLG4uc3RhdHVzPXIuc3RhdHVzLG47dmFyIG4scn12YXIgUD1hKDMwNzI3NCksaz1hKDg5MjU2OSksRT1hKDExNzA0Nyk7ZnVuY3Rpb24gTygpe2xldCB0PSI/Ijtjb25zdCBuPSgwLEUueSkoKSxyPSgwLEMubk0pKHdpbmRvdy5sb2NhdGlvbik7T2JqZWN0LmtleXMocikuZm9yRWFjaCgoZT0+e3N3aXRjaChlKXtjYXNlImJPIjpjYXNlInZlcnNpb24iOnQrPWAke2V9PSR7cltlXX0mYDticmVhaztkZWZhdWx0OnQrPWAke2V9PXZhbCZgfX0pKTtsZXQgbz0oMCxlLiQ2KShuLmxvY2F0aW9uLmhvc3Qrbi5sb2NhdGlvbi5wYXRobmFtZSsodC5sZW5ndGg+MT90LnNsaWNlKDAsLTEpOiIiKSk7cmV0dXJuIG8mJm8ubGVuZ3RoPjEwMCYmKG89by5zdWJzdHIoMCwxMDApKSxvP2VuY29kZVVSSUNvbXBvbmVudChvKTp2b2lkIDB9dmFyIFQ9YSg1Mzg2NTIpLHg9YSg0NzE3MTApLEQ9YSg2Mjg4NDEpO2Z1bmN0aW9uIE0odCxuKXtjb25zdCByPSgwLEQuUzcpKCksbz0oMCxELmdzKSgpLGk9e0FwcE5hbWU6KDAsZS5NcSkoKSxVc2VyQWdlbnQ6d2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQsRXhwbGljaXRMb2dvbjooMCx4Lk8pKHdpbmRvdyksUHVpZDooMCxtLm5EKSgpLFRlbmFudEd1aWQ6KDAsbS51QykoKSxNQlhHdWlkOigwLG0uV0EpKCksSXNQcmVtaXVtOigwLG0uYVIpKCksQ2xpZW50SWQ6KDAsZS5pMikoKSxSZWZVcmw6TygpLENsaWVudFZlcnNpb246KDAsZS5WSikoKSxCRVNlcnZlcjoobnVsbD09bj92b2lkIDA6bi5lYmUpfHwoMCxlLk5fKSgpLEZFU2VydmVyOihudWxsPT1uP3ZvaWQgMDpuLmVmZSl8fCgwLGUuVVApKCksVGhyb3VnaEVkZ2U6KDAsZS5fSCkoKSxTZXJ2aWNlVmVyc2lvbjooMCxlLkhGKSgpLERhZzooMCxlLkt4KSgpLEZvcmVzdDooMCxlLnlfKSgpLERlcGxveVJpbmc6KDAsZS5ucikoKSwiU2Vzc2lvbi5JZCI6KDAsZS5NUSkoKSxQaHlzaWNhbFJpbmc6KDAsVC5vSCkoKSxWYXJpYW50RW52OigwLFQudUQpKCksQnJvd3Nlck5hbWU6ci5icm93c2VyLEhvc3Q6KDAsZS5yMCkoKSxIb3N0VmVyc2lvbjooMCxlLkZLKSgpLEJyb3dzZXJWZXJzaW9uOnIuYnJvd3NlclZlcnNpb24udG9TdHJpbmcoKSxPc05hbWU6by5vcyxPc1ZlcnNpb246by5vc1ZlcnNpb24sUmV0cnlTdHJhdGVneTooMCxDLm1uKSgiYk8iKSxJc0NvbnN1bWVyOigwLG0udWYpKCksTGF5b3V0OigwLGUuRzApKCl9O3JldHVybiBuJiYoaS5FcnJvclR5cGU9bi5ldCxpLkVycm9yU291cmNlPW4uZXNyYyxpLkVycm9yPW4uZXJyLGkuRXh0cmFFcnJvckluZm89KDAsZS4kNikobi5lc3RhY2spLGkuU3RhdHVzQ29kZT1uLnN0LGkuUmVxdWVzdElkPW4ucmVxaWQpLHtuYW1lOnQsZGF0YTppfX1jb25zdCBCPXtvazoiY2xpZW50c3RhcnR1cHN1Y2Nlc3MiLGZhaWw6ImNsaWVudHN0YXJ0dXBlcnJvciIsdHJhbnNpZW50OiJjbGllbnRzdGFydHVwZXJyb3IifTthc3luYyBmdW5jdGlvbiBGKHQsbixvLGkpe3ZhciBhO2xldCBzLGM7dHJ5e3M9YXdhaXQoMCxlLlExKSgpO2NvbnN0IHQ9KDAsay53USkoKTt5KCJzd1ZlciIsdHx8dHlwZW9mIHQpO2NvbnN0IG49KDAsZS5XMykoKTtuJiYoYz1hd2FpdCBuKTt5KCJjZG5Qcm92aWRlciIsKDAsay55RikoKSk7eSgibmV4dEhvcFByb3RvY29sIiwoMCxyLlZUKSgpKX1jYXRjaChlKXt9Y29uc3QgbD1bVihCW3RdfHwiY2xpZW50c3RhcnR1cG90aGVyIix0LG4scyxjKV07aWYod2luZG93Lm93YUJhY2tmaWxsZWRFcnJvcnMpZm9yKGxldCBlPTA7ZTx3aW5kb3cub3dhQmFja2ZpbGxlZEVycm9ycy5sZW5ndGg7ZSsrKWwucHVzaChWKCJib290ZXZhbGVycm9yIix0LG4scyxjKSk7bGV0IEg9IiI7KG51bGw9PWk/dm9pZCAwOmkuZGlhZ25vc3RpY0luZm8pJiYoSCs9aS5kaWFnbm9zdGljSW5mbyksd2luZG93Lm93YUJhY2tmaWxsZWRFcnJvcnMmJndpbmRvdy5vd2FCYWNrZmlsbGVkRXJyb3JzLmxlbmd0aD4wJiYoSCs9InwiK3dpbmRvdy5vd2FCYWNrZmlsbGVkRXJyb3JzLm1hcChMKS5qb2luKCJ8IikpLEgmJlcobFswXSwiRGlhZ25vc3RpY3MiLEgpO2NvbnN0IGQ9bnVsbD09KGE9d2luZG93LnBlcmZvcm1hbmNlKT92b2lkIDA6YS5uYXZpZ2F0aW9uO3JldHVybiBkJiZXKGxbMF0sIlJlZGlyZWN0Q291bnQiLGQucmVkaXJlY3RDb3VudCksKDAsUC5nKShudWxsPT1vP3ZvaWQgMDpvLnBsdCksbyYmKG8uc3RhcnQmJlcobFswXSwiU3RhcnRUaW1lIixEYXRlLm5vdygpLW8uc3RhcnQpLFcobFswXSwiTG9hZFRpbWUiLG8ucGx0KSksVyhsWzBdLCJNaXNjRGF0YSIsZnVuY3Rpb24odCxuKXt2YXIgcjtsZXQgbz1gJnZtPXRydWUmc3A9JHsoMCxSLlJzKSgpfWA7dCYmKG8rPWAmZWhrPSR7dC5laGt9Jm1zZz0ke3QuZW1zZ31gKTtjb25zdCBpPSgwLHUuSUwpKCk7aWYoaSYmaS5sZW5ndGg+MCYmKG8rPSImYmY9IitpLmpvaW4oIiwiKSksbil7bys9IiZyZXE9IisoMCxlLiQ2KShlbmNvZGVVUklDb21wb25lbnQobi51cmwpKTtmb3IobGV0IGU9MDtlPE4ubGVuZ3RoO2UrKyl7Y29uc3QgdD1OW2VdLHI9ZyhuLHQpO3ImJihvKz1gJiR7dH09JHtyfWApfW8rPSImcnQ9IituLnR5cGV9Y29uc3QgYT1udWxsPT0ocj13aW5kb3cucGVyZm9ybWFuY2UpP3ZvaWQgMDpyLm5hdmlnYXRpb247cmV0dXJuIGEmJihvKz1gJm50PSR7YS50eXBlfWApLG8rVX0obixudWxsPT1pP3ZvaWQgMDppLnJlc3BvbnNlKSksVyhsWzBdLCJUaW1pbmdzIiwoMCxyLnBpKSgpKSxXKGxbMF0sIk1lbW9yeSIsKDAsci5BbykoKSksbH1mdW5jdGlvbiBMKGUpe2xldCB0PSJudWxsIjtyZXR1cm4gZSYmKHQ9ZVswXSwiZnVuY3Rpb24iPT10eXBlb2YgZS5jYWxsZWUmJih0Kz0iOiIrZS5jYWxsZWUoKSkpLHR9ZnVuY3Rpb24gVih0LG4sbyxpLGEpe2NvbnN0IHM9TSh0LG8pO3JldHVybiBzLmRhdGEuQm9vdFJlc3VsdD1uLHMuZGF0YS5Cb3R0bGVuZWNrcz0oMCxyLk4kKSgpLHMuZGF0YS5MYXllcnM9KDAsci54YikoKSxXKHMsIkJvb3RUeXBlIixpKSxhJiYoVyhzLCJIb3N0ZWRTY2VuYXJpbyIsYS5ob3N0ZWRTY2VuYXJpbyksVyhzLCJIb3N0VGVsZW1ldHJ5IiwoMCxlLiQ2KShhLmhvc3RUZWxlbWV0cnkpKSksc31mdW5jdGlvbiBXKGUsdCxuKXtudWxsIT1uJiZudWxsIT1uJiYoZS5kYXRhW3RdPW4pfXZhciBqPWEoNjIxMjc2KSxKPWEoMTAyNDA0KSxxPWEoMjI5NzYwKTtsZXQgWjtsZXQgejtmdW5jdGlvbiBHKGUpe3ZhciB0LG47ZS5uYW1lLFEoKG51bGw9PSh0PW51bGw9PWU/dm9pZCAwOmUuZGF0YSk/dm9pZCAwOnQuRXJyb3JTb3VyY2UpfHwiIiksUSgobnVsbD09KG49bnVsbD09ZT92b2lkIDA6ZS5kYXRhKT92b2lkIDA6bi5FcnJvclR5cGUpfHwiIil9ZnVuY3Rpb24gWSh0LG4pe2lmKCFaKXJldHVybiBQcm9taXNlLnJlc29sdmUoKTtjb25zdCByPSgwLEMuSkkpKCJkcCIpLG89ISgwLGUuaiQpKCk7cmV0dXJuIG5ldyBQcm9taXNlKChhc3luYyBlPT57Y29uc3QgaT13aW5kb3cuc2V0VGltZW91dChlLG58fDNlMyk7dHJ5e2NvbnN0IG49YXdhaXQgdDtpZihuKWZvcihjb25zdCBlIG9mIG4pbyYmei50cmFjayhlKSxyJiZHKGUpfWNhdGNoKGUpe31maW5hbGx5e3dpbmRvdy5jbGVhclRpbWVvdXQoaSksZSgpfX0pKX1mdW5jdGlvbiBRKGUpe3RyeXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkoZSl9Y2F0Y2goZSl7cmV0dXJuIGUubWVzc2FnZX19Y29uc3QgWD1bIlgtT1dBLUVycm9yIiwiWC1BdXRoLUVycm9yIiwiWC1SZWRpci1FcnJvciIsIlgtSklULUVycm9yIl07ZnVuY3Rpb24gXyh0KXtjb25zdCBuPXtlcnI6IlVua25vd24iLGVzcmM6IlJ1bnRpbWUifTtpZih0KXtuLmV0PXQudXJsPyJTZXJ2ZXJFcnJvciI6IkNsaWVudEVycm9yIix0LnNvdXJjZSYmKG4uZXNyYz10LnNvdXJjZSksKHQubmFtZXx8dC5tZXNzYWdlKSYmKG4uZXJyPWAke3QubmFtZX06ICR7dC5tZXNzYWdlfWApO2NvbnN0IHI9bnVsbD09dD92b2lkIDA6dC5yZXNwb25zZTtuLmVzdGFjaz1nKHIsIlgtSW5uZXJFeGNlcHRpb24iKXx8dC5zdGFjayxuLnN0PShudWxsPT1yP3ZvaWQgMDpyLnN0YXR1cyl8fChudWxsPT10P3ZvaWQgMDp0LnN0YXR1cyk7Zm9yKGxldCB0PTA7dDxYLmxlbmd0aDt0Kyspe2NvbnN0IG89WFt0XSxpPWcocixvKTtpZihpKXtuLmVoaz1vLG4uZXJyPSgwLGUuJDYpKGkpO2JyZWFrfX1jb25zdCBvPWcociwieC1tcy1kaWFnbm9zdGljcyIpO28mJnkoIngtbXMtZGlhZ25vc3RpY3MiLG8pLG4uZWZlPWcociwiWC1GRVNlcnZlciIpLG4uZWJlPWcociwiWC1CRVNlcnZlciIpLG4uZXdzdmVyPWcociwiWC1PV0EtVmVyc2lvbiIpLG4ucmVxaWQ9ZyhyLCJyZXNwb25zZS1pZCIpLG4uZW1zZz1nKHIsIlgtT1dBRXJyb3JNZXNzYWdlSUQiKSxuLmVzdGFjayYmKG4uZXN0YWNrLmxlbmd0aD4xMDI0JiYobi5lc3RhY2s9ZnVuY3Rpb24oZSl7Y29uc3QgdD1lLnNwbGl0KCJcbiIpO2ZvcihsZXQgZT0xO2U8dC5sZW5ndGg7ZSsrKWlmKHRbMF0hPXRbZV0pcmV0dXJuIHQuc2xpY2UoZS0xKS5qb2luKCJcbiIpO3JldHVybiBlfShuLmVzdGFjaykpLG4uZXN0YWNrLmxlbmd0aD4xMDI0JiYobi5lc3RhY2s9bi5lc3RhY2suc3Vic3RyaW5nKDAsMTAyNCkpKX1yZXR1cm4gbn12YXIgJD1hKDY5MDQ2KSxlZT1hKDg1MjMxMyksdGU9YSgzNTU1NDUpLG5lPWEoNzI3ODM1KSxyZT1hKDI4MDQ1NCksb2U9YSg5OTU1MjcpLGllPWEoNjE1NDcwKTtjb25zdCBhZT17MDoibmV0d29yayIsNDAxOiJhdXRoIiw0MTE6ImV4dGVybmFsIiw0NDA6ImF1dGgifSxzZT1bIkV4cGlyZWRCdWlsZCIsIlBvaXNvbmVkQnVpbGQiXSxjZT1bIk93YUludmFsaWRUaW1lem9uZUV4Y2VwdGlvbiIsIk93YUludmFsaWRPcGVyYXRpb25FeGNlcHRpb24iLCJPd2FJbnZhbGlkVXNlckxhbmd1YWdlRXhjZXB0aW9uIl0sdWU9WyJBY2Nlc3NEZW5pZWRFeGNlcHRpb24iLCJNYWlsYm94VW5hdmFpbGFibGVFeGNlcHRpb24iLCJPd2FFeHBsaWNpdExvZ29uRXhjZXB0aW9uIiwiT3dhQURPYmplY3ROb3RGb3VuZEV4Y2VwdGlvbiJdO2Z1bmN0aW9uIGxlKGUsdCl7aWYobnVsbD09ZT92b2lkIDA6ZS5yZXN1bHQpcmV0dXJuIGUucmVzdWx0O2NvbnN0IG49dC5lcnI7aWYoKDAsJC5nKShjZSxuKSlyZXR1cm4ibGFuZ3R6IjtpZigoMCxlZS5wKShuKSlyZXR1cm4idGhyb3R0bGUiO2lmKCgwLHRlLnEpKG4pKXJldHVybiJjb25maWd1cmF0aW9uIjtpZigoMCxuZS5tKShuKXx8ZSYmKDAscmUudSkoZS5zdGFjayl8fHdpbmRvdy5vd2FCYWNrZmlsbGVkRXJyb3JzJiZ3aW5kb3cub3dhQmFja2ZpbGxlZEVycm9ycy5maWx0ZXIoKGU9PigwLG5lLm0pKGVbMF0pKSkubGVuZ3RoPjApcmV0dXJuIm1lbW9yeSI7aWYoZSl7Y29uc3QgdD1lLnJlc3BvbnNlO2lmKChudWxsPT10P3ZvaWQgMDp0LnVybCkmJnQudXJsLnRvTG93ZXJDYXNlKCkuaW5kZXhPZigiL2F1dGgvZXJyb3JmZS5hc3B4Iik+LTEpcmV0dXJuImVycm9yZmUiO2lmKGUucmVxdWVzdClyZXR1cm4iY2RuRXJyb3IifWNvbnN0IHI9dC5lc3JjO2lmKHImJnNlLmluZGV4T2Yocik+LTEpcmV0dXJuIHI7Y29uc3Qgbz10LnN0O3JldHVybiJJbml0TG9jIj09ciYmMCE9bz8iZmFpbCI6KDAseC5PKSh3aW5kb3cpJiYoMCwkLmcpKHVlLG4pPyJhY2Nlc3NEZW5pZWQiOigwLG9lLmkpKG4pfHw1MDM9PW8/InRyYW5zaWVudCI6KDAsaWUuZSkobixlKT8ibmV0d29yayI6YWVbb118fCJmYWlsIn12YXIgSGU9YSg3MjY4NTMpLGRlPWEoNzY0MDUwKTthc3luYyBmdW5jdGlvbiBmZSh0LG4pe3RyeXtjb25zdCByPWF3YWl0IGFzeW5jIGZ1bmN0aW9uKHQsbil7bGV0IHI9IlVUQyI7aWYod2luZG93LkludGwmJiJvYmplY3QiPT10eXBlb2Ygd2luZG93LkludGwpe2NvbnN0IGU9d2luZG93LkludGwuRGF0ZVRpbWVGb3JtYXQoKS5yZXNvbHZlZE9wdGlvbnMoKTsobnVsbD09ZT92b2lkIDA6ZS50aW1lWm9uZSkmJihyPWUudGltZVpvbmUpfWNvbnN0IGk9KDAsYy5aKSgoMCxlLmRxKSgpKSxhPSgwLEhlLmU3KSgoMCxIZS5aUCkoaSwibGFuZy5vd2EiKSkscz1uZXcgSGVhZGVycyx1PWBsb2NhbGVOYW1lPSR7d2luZG93Lm5hdmlnYXRvci5sYW5ndWFnZX0mdHppZD0ke3J9JnNhdmVMYW5ndWFnZUFuZFRpbWV6b25lPTFgLGw9KDAsby5pRSkoKTtyZXR1cm4gcy5hcHBlbmQoIkNvbnRlbnQtVHlwZSIsImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIpLHMuYXBwZW5kKCJYLU9XQS1DQU5BUlkiLCgwLGRlLk56KSgpKSx0JiZzLmFwcGVuZCgieC1hbmNob3JtYWlsYm94Iix0KSwhbiYmbCYmbC5nZXRBdXRoVG9rZW4mJihuPWF3YWl0IGwuZ2V0QXV0aFRva2VuKCkpLG4mJnMuYXBwZW5kKCJBdXRob3JpemF0aW9uIixuKSxmZXRjaChhLHttZXRob2Q6IlBPU1QiLGNyZWRlbnRpYWxzOiJpbmNsdWRlIixoZWFkZXJzOnMsYm9keTp1fSl9KHQsbiksaT1yLmhlYWRlcnMuZ2V0KCJYLU9XQS1FcnJvciIpO2lmKGkpdGhyb3cgbmV3IEVycm9yKGkpO2lmKHIuc3RhdHVzPj00MDApdGhyb3cgYihyKTthd2FpdCBZKFNlKCJsYW5ncG9zdF9zdWNjZXNzIikpfWNhdGNoKGUpe2NvbnN0IHQ9KDAsQS5aKShlLCJMYW5nUG9zdCIsd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lLGUuc3RhdHVzKTthd2FpdCBZKFNlKCJsYW5ncG9zdF9lcnJvciIsXyh0KSkpfX1mdW5jdGlvbiBTZShlLHQpe3JldHVybiBQcm9taXNlLnJlc29sdmUoW00oZSx0KV0pfWZ1bmN0aW9uIHBlKGUsdCxuKXtjb25zdCByPSgwLEMubW4pKCJiTyIpO2lmKHZvaWQgMCE9PXImJiI0IiE9PXIpcmV0dXJuIG51bGw7aWYobiYmIlN0YXJ0dXBEYXRhIj09dClyZXR1cm4gbnVsbDtzd2l0Y2goZSl7Y2FzZSJsYW5ndHoiOnJldHVybntzdHJhdGVneToiMSIsd2FpdEZvcjpmZSgpfTtjYXNlImF1dGgiOnJldHVybigwLG8uaUUpKCkuZ2V0QXV0aFRva2VuJiYhbj97c3RyYXRlZ3k6IjEifTpudWxsO2Nhc2UidGhyb3R0bGUiOmNhc2UiZXJyb3JmZSI6Y2FzZSJhY2Nlc3NEZW5pZWQiOmNhc2UiY29uZmlndXJhdGlvbiI6cmV0dXJuIG51bGw7Y2FzZSJFeHBpcmVkQnVpbGQiOmNhc2UiUG9pc29uZWRCdWlsZCI6cmV0dXJuIjQiPT09cj9udWxsOntzdHJhdGVneToiNCJ9O2Nhc2UidHJhbnNpZW50IjpyZXR1cm57c3RyYXRlZ3k6IjEiLHRpbWVvdXQ6MWU0fTtkZWZhdWx0OnJldHVybntzdHJhdGVneToiSW5pdExvYyI9PXQ/IjIiOiIxIn19fXZhciBDZT1hKDE4MDM4Nyk7YXN5bmMgZnVuY3Rpb24gdmUodCxuKXtjb25zdCByPSgwLEEuWikoYihuKSwiU3RhcnR1cERhdGEiLCgwLGUuJDYpKG4udXJsKSksbz1fKHIpLGk9cGUobGUocixvKSxvLmVzcmMpO2lmKGkpcmV0dXJuIGF3YWl0IGZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4geSgiU3RhcnR1cERpZFJldHJ5IiwidCIpLFkoRihlLG58fF8odCksdm9pZCAwLHQpKX0oInNlcnZlclJldHJ5IixyLG8pLGkud2FpdEZvciYmYXdhaXQgUHJvbWlzZS5yYWNlKFsoMCxDZS5aKSgxZTQpLGkud2FpdEZvci5jYXRjaCgoKCk9Pnt9KSldKSx7ZW5kcG9pbnQ6YCR7dH0/Yk89MSZhcHA9JHsoMCxlLk1xKSgpfWAsZGVsYXk6aS50aW1lb3V0fX1jb25zdCBoZT0ic2RmcCI7bGV0IG1lPTAsSWU9MDtjb25zdCBBZT0oMCxyLnQ4KSgoZnVuY3Rpb24oKXtjb25zdCBlPW5ldyBIZWFkZXJzLHQ9KDAsby5pRSkoKSxyPXQuZ2V0R2xvYmFsU2V0dGluZ3NBY2NvdW50TWFpbGJveEluZm8/dC5nZXRHbG9iYWxTZXR0aW5nc0FjY291bnRNYWlsYm94SW5mbygpOnZvaWQgMCxpPSgwLEkuclYpKHdpbmRvdyxoZSk7aSYmdigiZm9sZGVyUGFyYW1zIixpKSYmKGUuc2V0KCJmb2xkZXJQYXJhbXMiLGkpLG1lPTEpO2NvbnN0IGE9KDAsSS5yVikod2luZG93LHAuXyk7YSYmdigibWVzc2FnZVBhcmFtcyIsYSkmJihlLnNldCgibWVzc2FnZVBhcmFtcyIsYSksSWU9MSk7cmV0dXJuIGgocixlLHtjcmVhdGVCb290RXJyb3I6QS5aLGNyZWF0ZVN0YXR1c0Vycm9yTWVzc2FnZTpiLG9uQmVmb3JlUmV0cnk6dmV9LGdlLFJlLG4udFUpfSksInNkIik7ZnVuY3Rpb24gZ2UoZSl7IWZ1bmN0aW9uKGUpe3ZhciBuLHIsbyxpLGEscyxjLHUsbCxIO2lmKCEobnVsbD09KHI9bnVsbD09KG49ZS5vd2FVc2VyQ29uZmlnKT92b2lkIDA6bi5TZXNzaW9uU2V0dGluZ3MpP3ZvaWQgMDpyLlVzZXJFbWFpbEFkZHJlc3MpKXtjb25zdCBuPSJBY2N0SW5pdC1Ob1VzZXJFbWFpbEFkZHJlc3MiLHI9bmV3IEVycm9yKG4pOygwLHQuQykobix7c3RhY2s6ci5zdGFjayxzdDp0eXBlb2YgZSx1Yzp0eXBlb2YgZS5vd2FVc2VyQ29uZmlnLHNzOnR5cGVvZihudWxsPT0obz1lLm93YVVzZXJDb25maWcpP3ZvaWQgMDpvLlNlc3Npb25TZXR0aW5ncyksdWU6dHlwZW9mKG51bGw9PShhPW51bGw9PShpPWUub3dhVXNlckNvbmZpZyk/dm9pZCAwOmkuU2Vzc2lvblNldHRpbmdzKT92b2lkIDA6YS5Vc2VyRW1haWxBZGRyZXNzKX0pfWlmKCEobnVsbD09KGM9bnVsbD09KHM9ZS5vd2FVc2VyQ29uZmlnKT92b2lkIDA6cy5TZXNzaW9uU2V0dGluZ3MpP3ZvaWQgMDpjLkxvZ29uRW1haWxBZGRyZXNzKSl7Y29uc3Qgbj0iQWNjdEluaXQtTm9Mb2dvbkVtYWlsQWRkcmVzcyIscj1uZXcgRXJyb3Iobik7KDAsdC5DKShuLHtzdGFjazpyLnN0YWNrLHN0OnR5cGVvZiBlLHVjOnR5cGVvZiBlLm93YVVzZXJDb25maWcsc3M6dHlwZW9mKG51bGw9PSh1PWUub3dhVXNlckNvbmZpZyk/dm9pZCAwOnUuU2Vzc2lvblNldHRpbmdzKSx1ZTp0eXBlb2YobnVsbD09KEg9bnVsbD09KGw9ZS5vd2FVc2VyQ29uZmlnKT92b2lkIDA6bC5TZXNzaW9uU2V0dGluZ3MpP3ZvaWQgMDpILkxvZ29uRW1haWxBZGRyZXNzKX0pfX0oZSksZS5mb2xkZXJQYXJhbXMmJigwLEkuTFMpKHdpbmRvdyxoZSxKU09OLnN0cmluZ2lmeShlLmZvbGRlclBhcmFtcykpLGUubWVzc2FnZVBhcmFtcyYmKDAsSS5MUykod2luZG93LHAuXyxKU09OLnN0cmluZ2lmeShlLm1lc3NhZ2VQYXJhbXMpKTtjb25zdCBuPSgwLG0ubUwpKGUpO3JldHVybigwLEkuTFMpKHdpbmRvdywiQm9vdERpYWdub3N0aWNzIixKU09OLnN0cmluZ2lmeShuKSksZX1mdW5jdGlvbiBSZShlKXtsZXQgdDtpZihlKXtjb25zdCBuPWUuZ2V0KCJ4LW93YS1zdGFydHVwLXByZWxvYWQiKTtuJiYoMCxyLnlJKSgic2RfcHIiLG4pO2NvbnN0IG89ZS5nZXQoIngtb3dhLXN0YXJ0dXAtZGlhZyIpO28mJih0PXBhcnNlSW50KG8pKX1OZShoZSxtZSx0LDQsMSksTmUocC5fLEllLHQsOCwyKX1mdW5jdGlvbiBOZShlLHQsbixvLGkpe24mJigwIT0obiZvKT90PTM6MCE9KG4maSkmJih0PTIpLDAhPSgxNiZuKSYmKDAsSS5jbCkod2luZG93LGUpKSwoMCxyLnlJKShlLHQpfXZhciBVZT1hKDI2MDU1NikseWU9YSg1ODgzOTkpLEtlPWEoNTc1MTEzKTtjb25zdCB3ZT0iYXV0aFJlZGlyZWN0IjtmdW5jdGlvbiBiZSh0LG4scixvLGksYSl7Y29uc3Qgcz0oMCxDLm5NKSh0KSx1PXNbbl0hPT1yO2lmKHUpe2lmKG49PXdlKXtjb25zdCBlPWE/YS5nZXQoIlgtT1dBLUNsYWltQ2hhbGxlbmdlIik6dm9pZCAwO2UmJnMuY2MhPT1lJiYocy5jYz1kZWNvZGVVUklDb21wb25lbnQoZSkpfXNbbl09cixvJiYocy5zZXNzaW9uSWQ9KDAsZS5NUSkoKSk7Y29uc3QgdT0oMCxVZS5aKSgpfHwibWFpbCI7bGV0IGw9YCR7KDAsYy5aKShgLyR7dX1gKX0vYDtpJiYocy5zdGF0ZT0iMCIsbD1gJHtmdW5jdGlvbihlKXt2YXIgdDtsZXQgbj1lO2NvbnN0IHI9bnVsbD09KHQ9KDAsS2UuSSkoKSk/dm9pZCAwOnQucGF0aG5hbWU7aWYocil7Y29uc3QgZT0oMCxVZS5aKSgpfHwiIix0PXIuc3BsaXQoIi8iKS5maWx0ZXIoKGU9PmUpKSxvPXQuaW5kZXhPZihlLnJlcGxhY2UoL15cLyt8XC8rJC9nLCIiKSk7bz4tMSYmdC5zcGxpY2UobywxKTtjb25zdCBpPXQuam9pbigiLyIpO249KDAsSGUuWlApKG4saSl9cmV0dXJuKDAsSGUuZTcpKCgwLEhlLnhzKShuKSl9KGAvJHt1fWApfWApLHQuYXNzaWduKCgwLHllLlopKGwscykpfXJldHVybiB1fWZ1bmN0aW9uIFBlKGUpe3JldHVybiBzZWxmLmxvY2F0aW9uLmFzc2lnbihlKSwhMH1mdW5jdGlvbiBrZShlKXtjb25zdCB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3JldHVybiBFZSh0LGUpLHR9ZnVuY3Rpb24gRWUoZSx0KXtmb3IoY29uc3QgbiBvZiBPYmplY3Qua2V5cyh0KSllLnN0eWxlLnNldFByb3BlcnR5KG4sdFtuXSl9ZnVuY3Rpb24gT2UoKXtjb25zdCB0PVtgVVRDIERhdGU6ICR7KG5ldyBEYXRlKS50b0lTT1N0cmluZygpfWAsIkNsaWVudCBJZDogIisoMCxlLmkyKSgpLCJTZXNzaW9uIElkOiAiKygwLGUuTVEpKCksIkNsaWVudCBWZXJzaW9uOiAiKygwLGUuVkopKCldLG49KDAsZS5GSykoKTtyZXR1cm4gbiYmdC5wdXNoKCJOYXRpdmUgSG9zdCBWZXJzaW9uOiAiK24pLHR9dmFyIFRlPWEoODgzMDk5KTtmdW5jdGlvbiB4ZSgpe2xldCBlPSIiO3JldHVybiBlPXdpbmRvdy5vd2FCYWNrZmlsbGVkRXJyb3JzJiZ3aW5kb3cub3dhQmFja2ZpbGxlZEVycm9ycy5sZW5ndGg+MD8iQmFjayBGaWxsZWQgRXJyb3JzOiAiK3dpbmRvdy5vd2FCYWNrZmlsbGVkRXJyb3JzLm1hcChEZSkuam9pbigifCIpOiJCYWNrIEZpbGxlZCBFcnJvcnM6IE5vbmUiLGV9ZnVuY3Rpb24gRGUoZSl7bGV0IHQ9Im51bGwiO3JldHVybiBlJiYodD1lWzBdLCJmdW5jdGlvbiI9PXR5cGVvZiBlLmNhbGxlZSYmKHQrPSI6IitlLmNhbGxlZSgpKSksdH1jb25zdCBNZT0iYm9vdEZhaWx1cmVDb3VudCI7ZnVuY3Rpb24gQmUoKXtjb25zdCBlPSgwLEkuclYpKHdpbmRvdyxNZSk7cmV0dXJuIGU/cGFyc2VJbnQoZSk6MH1mdW5jdGlvbiBGZShlKXsoMCxJLkxTKSh3aW5kb3csTWUsZSsiIil9dmFyIExlPWEoMjY2NDkzKSxWZT1hKDQxNzI3NSk7bGV0IFdlO2NvbnN0IGplPSJodHRwczovL3N1cHBvcnQub2ZmaWNlLmNvbSIsSmU9IkNhbnRCb290IjtmdW5jdGlvbiBxZShlLG4scixvLGkpe2NvbnN0IGE9bnVsbD09bz92b2lkIDA6by5jb2xsZWN0TG9nc0NhbGxiYWNrLHM9bnVsbD09bz92b2lkIDA6by5jbG9zZVdpbmRvd0NhbGxiYWNrLGM9bnVsbD09bz92b2lkIDA6by51cGRhdGVIb3N0Q2FsbGJhY2ssdT1udWxsPT1vP3ZvaWQgMDpvLmNsZWFyV2ViVmlld0NhY2hlQ2FsbGJhY2ssbD1PZSgpO24uYmFja2ZpbGxlZEVycm9ycz14ZSgpLFdlPXtUaW1lc3RhbXBJblV0YzoobmV3IERhdGUpLnRvVVRDU3RyaW5nKCksQm9vdFJlc3VsdDplLEVycm9yRGlhZ25vc3RpY3M6bixCb290RXJyb3I6cixNZXRhZGF0YURldGFpbHM6bCxCb290RmFpbHVyZUNvdW50OkJlKCl9O2NvbnN0IEg9a2Uoe3Bvc2l0aW9uOiJhYnNvbHV0ZSIsbGVmdDoiMjJ2dyIsdG9wOiIxNXZoIn0pO3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwoZT0+ZnVuY3Rpb24oZSxuLHIsbyxpLGEpe2lmKGUub3JpZ2luPT1qZSl7Y29uc3Qgcz1lLmRhdGE7aWYoIXMuc2NlbmFyaW98fHMuc2NlbmFyaW89PUplKXtpZigiU3VwcG9ydEpTX3VwbG9hZERpYWdub3N0aWNzTG9nc1RvT0RTIj09cy5hY3Rpb24pe2NvbnN0IGU9cy5zZXNzaW9uSWQ7ZSYmbiYmbihlLHMub2RzRW5kcG9pbnQpfWlmKCJTdXBwb3J0SlNfR2V0VXNlckluZm8iPT1zLmFjdGlvbiYmZnVuY3Rpb24oZSl7Y29uc3QgdD0oMCxtLmszKSgpO3plKGUsIk9uVXNlckluZm9BdmFpbGFibGUiLHQ/e3Vwbjp0fTp7fSx0PyJTdWNjZXNzIjoiTm9VUE5Gb3VuZCIpfShlKSwiU3VwcG9ydEpTX0dldEJvb3RFcnJvckluZm8iPT1zLmFjdGlvbiYmZnVuY3Rpb24oZSl7emUoZSwiT25Cb290RXJyb3JJbmZvQXZhaWxhYmxlIixXZT97ZXJyb3JJbmZvSnNvbjpXZX06e30sV2U/IlN1Y2Nlc3MiOiJOb0Jvb3RFcnJvckluZm9Gb3VuZCIpfShlKSwiU3VwcG9ydEpTX2hpZGVTdXBwb3J0UGFuZSI9PXMuYWN0aW9uJiZyJiZyKCksIlN1cHBvcnRKU19ydW5SZWNvdmVyeUFjdGlvbiI9PXMuYWN0aW9uJiYidXBkYXRlSG9zdCI9PXMucmVjb3ZlcnlBY3Rpb24mJm8mJm8oKSwiU3VwcG9ydEpTX1JlZnJlc2hXaW5kb3ciPT1zLmFjdGlvbil7bGV0IGU9ITE7dHJ5e2U9IShudWxsPT1hP3ZvaWQgMDphKCkpfWNhdGNoKGUpe31lfHxzZWxmLmxvY2F0aW9uLnJlbG9hZCgpfSJTdXBwb3J0SlNfUnVuUmVjb3ZlcnlBY3Rpb24iPT1zLmFjdGlvbiYmaSYmZnVuY3Rpb24oZSxuKXtpZihlLnJlY292ZXJ5SWQpaWYoImNsZWFyV2ViVmlld0NhY2hlIj09ZS5yZWNvdmVyeUlkKXRyeXshYXN5bmMgZnVuY3Rpb24oZSx0KXtpZihhd2FpdCgwLFZlLlNYKSgiU3lzdGVtIiwxLjAzKSYmdCl7aWYodChlKSwxPT1lLmxlbmd0aCYmZVswXT09TGUuUTcuQ2FjaGVTdG9yYWdlKXtjb25zdCBlPXNlbGYubG9jYXRpb24udG9TdHJpbmcoKSx0PSJiTz0xIixuPWAke2V9JHtlLmluY2x1ZGVzKCI/Iik/IiYiOiI/In0ke3R9YDtzZWxmLmxvY2F0aW9uLmhyZWY9bn1lbHNlIHNlbGYubG9jYXRpb24ucmVsb2FkKCk7cmV0dXJuITB9fShlLmxpc3RPZkNhY2hlRm9sZGVyc1RvQ2xlYXIsbil9Y2F0Y2goZSl7KDAsdC5DKSgiUnVuUmVjb3ZlcnlBY3Rpb25fQ2xlYXJXZWJWaWV3Q2FjaGVGYWlsZWQiLHtlcnJvcjplfSl9ZWxzZSBpZigicmVsb2FkV2ViQXBwIj09ZS5yZWNvdmVyeUlkKXRyeXt3aW5kb3cubG9jYXRpb24ucmVsb2FkKCl9Y2F0Y2goZSl7KDAsdC5DKSgiUnVuUmVjb3ZlcnlBY3Rpb25fcmVsb2FkV2ViQXBwRmFpbGVkIix7ZXJyb3I6ZX0pfX0ocyxpKX19fShlLGEscyxjLHUsaSkpKSxmdW5jdGlvbihlKXtjb25zdCB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpO3Quc3JjPVplKCksdC5pZD0ic3VwcG9ydE9uQm9vdEVycm9yIix0LmZyYW1lQm9yZGVyPSIwIix0LnNjcm9sbGluZz0iYXV0byIsdC5hbGxvdz0iZGlzcGxheS1jYXB0dXJlIixFZSh0LHt3aWR0aDoiNTV2dyIsaGVpZ2h0OiI3MHZoIn0pLGUuYXBwZW5kQ2hpbGQodCl9KEgpLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhcHAiKS5hcHBlbmRDaGlsZChIKX1mdW5jdGlvbiBaZSgpe2NvbnN0IHQ9KDAsZS5GSykoKSxuPXtBcHBOYW1lOnQ/Ik1PTkFSQ0giOiJPV0EiLEF1ZGllbmNlR3JvdXA6KDAsZS5ucikoKXx8IlByb2R1Y3Rpb24iLExvY2FsZTpHZSgpLFByb2R1Y3RWZXJzaW9uOm51bGwhPXQ/dDoiIixTY2VuYXJpbzpKZSxUaGVtZUlkOihyPSgwLEkuclYpKHdpbmRvdyxUZS5VLkpyKSxyJiZyLmVuZHNXaXRoKCJkYXJrIik/IjQiOiIwIiksU2NoZW1hVmVyc2lvbjoiMiJ9O3ZhciByO3JldHVybiJodHRwczovL3N1cHBvcnQub2ZmaWNlLmNvbS9jbGllbnQvcmVzdWx0cz9IZWxwSUQ9MTkxODIxJiIrKDAsQy5Qeikobil9ZnVuY3Rpb24gemUoZSx0LG4scil7ZS5zb3VyY2UucG9zdE1lc3NhZ2UoSlNPTi5zdHJpbmdpZnkoe2V2ZW50OnQsZGF0YTpuLGVycm9yOnJ9KSxqZSl9ZnVuY3Rpb24gR2UoKXtjb25zdCBlPSgwLEkuclYpKHdpbmRvdywiT3dhTG9jYWxlIik7cmV0dXJuIGV8fHdpbmRvdy5uYXZpZ2F0b3IubGFuZ3VhZ2V9Y29uc3QgWWU9IiMwMDc4RDQiLFFlPSIjMzMzIixYZT0iRmV3ZXIgRGV0YWlscyIsX2U9IidTZWdvZSBVSSBXZXN0RXVyb3BlYW4nLCAnU2Vnb2UgVUkgU2VtaWJvbGQnLCAnU2Vnb2UgV1AgU2VtaWJvbGQnLCAnU2Vnb2UgVUknLCAnU2Vnb2UgV1AnLCBUYWhvbWEsIEFyaWFsLCBzYW5zLXNlcmlmJyI7bGV0ICRlPSExO2Z1bmN0aW9uIGV0KGUsdCxuLHIsbyxpKXtjb25zdCBhPWtlKHtwb3NpdGlvbjoiYWJzb2x1dGUiLGxlZnQ6IjM0MHB4Iix0b3A6IjQwcHgifSkscz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibG9hZGluZ0xvZ28iKTtpZihzKXtzLnF1ZXJ5U2VsZWN0b3JBbGwoIioiKS5mb3JFYWNoKChlPT57Y29uc3QgdD1lO2dldENvbXB1dGVkU3R5bGUodCkuYW5pbWF0aW9uJiZFZSh0LHsiYW5pbWF0aW9uLWR1cmF0aW9uIjoiMHMifSl9KSkscy5yZW1vdmUoKTtFZShzLHtwb3NpdGlvbjoiaW5pdGlhbCIsd2lkdGg6IjU2cHgiLGhlaWdodDoiNTZweCIsIm1hcmdpbi1sZWZ0IjoiLTI4cHgiLHRyYW5zZm9ybToic2NhbGUoMC4yNSkifSksYS5hcHBlbmRDaGlsZChzKX1jb25zdCBjPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2FkaW5nU2NyZWVuIik7aWYoYyYmYy5yZW1vdmUoKSwoMCx1LmE0KSgic3VwcG9ydG9uYm9vdCIpJiZmdW5jdGlvbigpe2lmKCgwLEkuRFgpKHdpbmRvdykpe2NvbnN0IGU9ISgwLEkuamopKHdpbmRvdywib2Nwc2NvbnRhY3RzdXBwb3J0ZW5hYmxlZCIpfHwiMSI9PSgwLEkuclYpKHdpbmRvdywib2Nwc2NvbnRhY3RzdXBwb3J0ZW5hYmxlZCIpLHQ9ISgwLEkuamopKHdpbmRvdywib2Nwc2RpYWdub3N0aWNzdHJvdWJsZXNob290aW5nZW5hYmxlZCIpfHwiMSI9PSgwLEkuclYpKHdpbmRvdywib2Nwc2RpYWdub3N0aWNzdHJvdWJsZXNob290aW5nZW5hYmxlZCIpO3JldHVybiBlfHx0fXJldHVybiExfSgpKXsoYXN5bmMgZnVuY3Rpb24oKXtjb25zdCBlPVplKCk7dHJ5e2F3YWl0IGZldGNoKGUse21ldGhvZDoiR0VUIixtb2RlOiJuby1jb3JzIn0pfWNhdGNoKGUpe3JldHVybiExfXJldHVybiEwfSkoKS50aGVuKChyPT57aWYoIXIpe3R0KGEsZSx0LG4saSk7Y29uc3Qgcj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3VwcG9ydE9uQm9vdEVycm9yIik7ciYmci5yZW1vdmUoKX19KSk7dHJ5e3JldHVybiB2b2lkIHFlKGUsdCxuLHIsbyl9Y2F0Y2gocil7dHQoYSxlLHQsbixpKX19ZWxzZSB0dChhLGUsdCxuLGkpfWZ1bmN0aW9uIHR0KGUsdCxuLHIsbyl7aWYoJGUpcmV0dXJuOyRlPSEwLG50KGUse2ZvbnRTaXplOiI0MHB4Iixjb2xvcjpZZSwibWFyZ2luLXRvcCI6IjI4cHgifSwiU29tZXRoaW5nIHdlbnQgd3JvbmcuIiksbnQoZSx7Zm9udFNpemU6IjE2cHgiLCJmb250LWZhbWlseSI6X2UsbWFyZ2luOiIyMHB4IDAiLCJmb250LXdlaWdodCI6IjYwMCIsY29sb3I6UWV9LCJQbGVhc2UgdHJ5IHRoZSByZWNvbW1lbmRlZCBhY3Rpb24gYmVsb3cuIik7Y29uc3QgaT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7RWUoaSx7bWFyZ2luOiIwIDRweCIsImZvbnQtc2l6ZSI6IjE0cHgiLCJsaW5lLWhlaWdodCI6IjE5cHgifSk7bGV0IGE9IlJlZnJlc2ggdGhlIGFwcGxpY2F0aW9uIjtjb25zdCBzPUJlKCk7Mj09cz9hPSJSZWxvYWQgdGhlIGFwcGxpY2F0aW9uIjozPT1zP2E9IlJlbGF1bmNoIHRoZSBhcHBsaWNhdGlvbiI6cz49NCYmKGE9IlJlcGFpciB0aGUgYXBwbGljYXRpb24iKSxpLmlubmVyVGV4dD1hO2NvbnN0IGM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYnV0dG9uIik7RWUoYyx7Y29sb3I6IndoaXRlIiwiYmFja2dyb3VuZC1jb2xvciI6WWUsY3Vyc29yOiJwb2ludGVyIixwYWRkaW5nOiIwIDE2cHgiLCJtaW4td2lkdGgiOiI4MHB4IiwiYm9yZGVyLXJhZGl1cyI6IjJweCIsIm1pbi1oZWlnaHQiOiIzMnB4Iixib3JkZXI6IjFweCBzb2xpZCAjMDA3OEQ0IiwiZm9udC13ZWlnaHQiOiI2MDAiLCJmb250LWZhbWlseSI6X2UsImxpbmUtaGVpZ2h0IjoiMTlweCJ9KSxjLmFwcGVuZENoaWxkKGkpLGUuYXBwZW5kQ2hpbGQoYyk7Y29uc3QgdT1udChlLHtmb250U2l6ZToiMTRweCIsY29sb3I6WWUsY3Vyc29yOiJwb2ludGVyIiwiZm9udC1mYW1pbHkiOl9lLCJsaW5lLWhlaWdodCI6IjE5cHgiLCJmb250LXdlaWdodCI6IjYwMCIsbWFyZ2luOiIyMHB4IDAifSxYZSk7bGV0IGw9T2UoKTtsLnB1c2goIkJvb3RSZXN1bHQ6ICIrdCksci5yZXF1ZXN0JiZsLnB1c2goIkZhaWxlZCByZXNvdXJjZTogIityLnJlcXVlc3QpLGwucHVzaCh4ZSgpKSxsPWwuY29uY2F0KE9iamVjdC5rZXlzKG4pLmZpbHRlcigoZT0+bltlXSkpLm1hcCgoZT0+ZSsiOiAiK25bZV0pKSk7Y29uc3QgSD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJwcmUiKTtILmlubmVyVGV4dD1sLmpvaW4oIlxuIiksRWUoSCx7Y29sb3I6UWUsInVzZXItc2VsZWN0IjoiYWxsIn0pLGUuYXBwZW5kQ2hpbGQoSCksdS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCgpPT57Y29uc3QgZT11LmlubmVyVGV4dD09WGU7dS5pbm5lclRleHQ9ZT8iTW9yZSBEZXRhaWxzIjpYZSxILnN0eWxlLmRpc3BsYXk9ZT8ibm9uZSI6IiJ9KSksYy5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCgpPT57KG51bGw9PW8/dm9pZCAwOm8oKSl8fHNlbGYubG9jYXRpb24ucmVsb2FkKCl9KSksZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFwcCIpLmFwcGVuZENoaWxkKGUpfWZ1bmN0aW9uIG50KGUsdCxuKXtjb25zdCByPWtlKHQpO3JldHVybiBuJiYoci5pbm5lclRleHQ9biksZS5hcHBlbmRDaGlsZChyKSxyfWZ1bmN0aW9uIHJ0KHQsbixyLG8pe3ZhciBpLGE7bGV0IHM9ITE7Imxhbmd0eiI9PXQ/cz1mdW5jdGlvbihlKXtsZXQgdD0oMCxjLlopKCIvb3dhIikrIi8iO3JldHVybiJDYWxlbmRhciI9PWV8fCJNaW5pQ2FsZW5kYXIiPT1lP3QrPSI/cGF0aD0vY2FsZW5kYXIiOiJQZW9wbGUiIT1lJiYiTWluaVBlb3BsZSIhPWV8fCh0Kz0iP3BhdGg9L3Blb3BsZSIpLFBlKHQpfSgoMCxlLk1xKSgpKToiZXJyb3JmZSI9PXQmJihudWxsPT0oaT1uLnJlc3BvbnNlKT92b2lkIDA6aS51cmwpP3M9UGUobi5yZXNwb25zZS51cmwpOiJhdXRoIj09dCYmKHM9YmUobG9jYXRpb24sd2UsInRydWUiLHZvaWQgMCwhMCxudWxsPT0oYT1udWxsPT1uP3ZvaWQgMDpuLnJlc3BvbnNlKT92b2lkIDA6YS5oZWFkZXJzKSksc3x8KG51bGw9PW98fG8oKSxldCh0LHIsbikpfWNvbnN0IG90PXt9O2Z1bmN0aW9uIGl0KHQsbil7dmFyIHI7Y29uc3Qgbz0oMCxDLm5NKSh3aW5kb3cubG9jYXRpb24pO2Zvcihjb25zdCBlIG9mIE9iamVjdC5rZXlzKG90KSlvW2VdPW90W2VdO251bGw9PShyPW4uZWRpdFFzcCl8fHIuY2FsbChuLG8pO2NvbnN0IGk9by5iTyE9PXQuc3RyYXRlZ3k7dmFyIGEscztyZXR1cm4gaSYmKG8uYk89dC5zdHJhdGVneSxvLnNlc3Npb25JZD0oMCxlLk1RKSgpLGE9YD8keygwLEMuUHopKG8pfWAsKHM9dC50aW1lb3V0fHwwKT4wP3NldFRpbWVvdXQoKCgpPT57d2luZG93LmxvY2F0aW9uLnNlYXJjaD1hfSkscyk6d2luZG93LmxvY2F0aW9uLnNlYXJjaD1hKSxpfXZhciBhdD1hKDY5OTc2Niksc3Q9YSg2MDQxOTEpO2xldCBjdDtmdW5jdGlvbiB1dCh0KXtyZXR1cm4gZnVuY3Rpb24odCl7dmFyIG47dHJ5e2N0PURhdGUubm93KCksKDAsZS5NcSkoKXx8KDAsUi5kYikodC5hcHApLCgwLGF0LkspKCEhdC5pc0RlZXBMaW5rKSxmdW5jdGlvbihlKXtpZihaPWUsWil0cnl7ej1uZXcgai5aO2NvbnN0IHQ9bmV3IEouWixuPXt9LHI9e2luc3RydW1lbnRhdGlvbktleTplLGVuZHBvaW50VXJsOigwLHEuaGgpKCksZXh0ZW5zaW9uczpbdF0sZXh0ZW5zaW9uQ29uZmlnOntbdC5pZGVudGlmaWVyXTpufX07ei5pbml0aWFsaXplKHIsW10pfWNhdGNoKGUpe319KHQuc3RhcnR1cEFyaWFUb2tlbik7Y29uc3QgaT1udWxsPT0obj10LnJ1bkJlZm9yZVN0YXJ0KT92b2lkIDA6bi5jYWxsKHQsdCkuY2F0Y2goKGU9Pnt0aHJvdyBlLnNvdXJjZXx8KGUuc291cmNlPSJCZWZvcmVCb290IiksZX0pKTsoMCxvLnFfKSh7YmFzZVVybDooMCxjLlopKCgwLGUuZHEpKCkpfSk7Y29uc3QgYT10Lm92ZXJyaWRlQm9vdFByb21pc2VzfHwoKCk9PkFlKCkpLHM9aT9pLnRoZW4oYSk6YSgpLHU9KDAsci50OCkoKCgpPT50LmJvb3RzdHJhcC5pbXBvcnQoKSksIm1qcyIpKCksbD1be3Byb21pc2U6cyxrZXk6InNkIn0se3Byb21pc2U6dSxrZXk6ImpzIn1dO2xldCBIPVByb21pc2UucmVzb2x2ZSgpO2NvbnN0IGQ9KDAsZS5XMykoKSxmPXQuc3RyYXRlZ2llcyxTPXQub3B0aW9ucztTJiYobC5wdXNoKHtwcm9taXNlOigwLHIudDgpKCgoKT0+Uy5pbXBvcnQoKSksIm9qcyIpKCksa2V5OiJvanMifSksSD1Qcm9taXNlLmFsbChbUy5pbXBvcnQoKSxkfHxQcm9taXNlLnJlc29sdmUoKV0pLnRoZW4oKChbZV0pPT5lKHMsZikpKSk7Y29uc3QgcD1bdSxIXTtpZihkJiZwLnB1c2goZCksbC5wdXNoKHtwcm9taXNlOlByb21pc2UuYWxsKHApLnRoZW4oKChbZSx0XSk9Pnt0cnl7cmV0dXJuIGUuYXBwbHkobnVsbCx0P1t0XTpbcyxmXSl9Y2F0Y2goZSl7dGhyb3coMCxBLlopKGUsIkJvb3RzdHJhcCIpfX0pKS5jYXRjaCgoZT0+e3Rocm93KDAsQS5aKShlLCJTY3JpcHQiKX0pKSxrZXk6bnVsbH0pLHQucnVuQWZ0ZXJSZXF1ZXN0cyYmdC5ydW5BZnRlclJlcXVlc3RzKHMpLHQuc3RyYXRlZ2llcylmb3IoY29uc3QgZSBvZiBPYmplY3QudmFsdWVzKHQuc3RyYXRlZ2llcykpZSYmZS5pbXBvcnQoKTtyZXR1cm4oMCxyLlFxKSgic3RhcnQiLGwpfWNhdGNoKGUpe3JldHVybiBQcm9taXNlLnJlamVjdCgoMCxBLlopKGUsIlByZWJvb3QiKSl9fSh0KS50aGVuKCgoKT0+e3ZhciBlO3RyeXshZnVuY3Rpb24oZSx0KXt2YXIgbjtZKEYoIm9rIix2b2lkIDAsKG51bGw9PShuPXdpbmRvdy5wZXJmb3JtYW5jZSk/dm9pZCAwOm4ubm93KSYme3N0YXJ0OnQscGx0OmUud2FzVXNlclByb21wdGVkPy0xOk1hdGguZmxvb3Iod2luZG93LnBlcmZvcm1hbmNlLm5vdygpKX0pKX0odCxjdCk7Y29uc3Qgbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibG9hZGluZ1NjcmVlbiIpO24mJm4ucGFyZW50Tm9kZT09ZG9jdW1lbnQuYm9keSYmKCgwLHIuUm4pKCJsc19lIiksZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChuKSksbnVsbD09KGU9dC5vbkxvYWRlclJlbW92ZWQpfHxlLmNhbGwodCksKDAsc3QuX2IpKCksRmUoMCl9Y2F0Y2goZSl7dGhyb3coMCxBLlopKGUsIkJvb3RDb21wbGV0ZSIpfX0pKS5jYXRjaCgoZT0+eyFmdW5jdGlvbihlLHQpe3ZhciBuO2NvbnN0IHI9XyhlKTtsZXQgbz1sZShlLHIpO2NvbnN0IGk9KG51bGw9PShuPXQub3ZlcnJpZGVSZXRyeVN0cmF0ZWd5KT92b2lkIDA6bi5jYWxsKHQsbykpfHxwZShvLHIuZXNyYywhMCk7aSYmKG89InJldHJ5IiksWShGKG8scix2b2lkIDAsZSksaT92b2lkIDA6MWU0KS50aGVuKCgoKT0+e2kmJml0KGksdCl8fCh0LmhhbmRsZUJvb3RFcnJvcnx8cnQpKG8sZSxyLHQub25GYXRhbEJvb3RFcnJvcil9KSl9KGUsdCl9KSl9dmFyIGx0PWEoNDk4MDQ3KSxIdD1hKDMxMjg0NyksZHQ9YSg2NDUwNTMpO2NvbnN0IGZ0PSJzdGFydCI7dmFyIFN0PWEoNjI0NDUpLHB0PWEoOTQ3NTAzKTtjb25zdCBDdD1uZXcgc3QuSGQoKCgpPT5Qcm9taXNlLmFsbChbYS5lKDkyNTY3MSksYS5lKDIwMzkxOCksYS5lKDUyNjM3KSxhLmUoOTMyNTU3KSxhLmUoNzc1NDgyKSxhLmUoODgyMjcwKSxhLmUoMTU5NTEwKSxhLmUoMTU1ODY2KSxhLmUoNDk0MDQ0KSxhLmUoMjM5MjYzKSxhLmUoNTk4OSksYS5lKDk5NTI0MyksYS5lKDIwOTQxNSksYS5lKDMyODgwNyksYS5lKDYxMDEyNSksYS5lKDY3MjIwMyksYS5lKDYxMjA2MSksYS5lKDMwMDE3NCksYS5lKDM4ODEzNCksYS5lKDQxNDI4NCldKS50aGVuKGEuYmluZChhLDY1ODEpKSkpLHZ0PW5ldyBzdC5fNShDdCwoZT0+ZS5hcHBCb290c3RyYXApKTt2YXIgaHQ9YSg1NjYxMik7bmV3IHN0Lm5JKCgoKT0+UHJvbWlzZS5hbGwoW2EuZSg5MjU2NzEpLGEuZSgyMDM5MTgpLGEuZSg1MjYzNyksYS5lKDYxMjA2MSksYS5lKDE3NDQyNyksYS5lKDQwNzQ3MSksYS5lKDMyNDU4OCksYS5lKDExNDMyMCldKS50aGVuKGEuYmluZChhLDQ5OTIxMykpKSkuaW1wb3J0TW9kdWxlKCJDaGFuZ2VNb2R1bGUiKTt2YXIgbXQ9YSg5NjAwNzMpO2NvbnN0IEl0PW5ldyBzdC5IZCgoKCk9PlByb21pc2UuYWxsKFthLmUoOTI1NjcxKSxhLmUoMjAzOTE4KSxhLmUoMjA5Mzc3KSxhLmUoMTYzNzEpLGEuZSg4OTMyNDYpLGEuZSg0MDc0NzEpLGEuZSg3OTY2NjApLGEuZSgzMjQ1ODgpLGEuZSg3MDExMDYpLGEuZSg3OTU3MTYpLGEuZSg2OTkzNjIpXSkudGhlbihhLmJpbmQoYSw5NjQ0NzQpKSkpLEF0PW5ldyBzdC5fNShJdCwoZT0+ZS5nZXRPZmZsaW5lU2Vzc2lvbkRhdGEpKSxndD10PT50PT1TdC5ZLlBlb3BsZSYmKDAsZS5DUSkoKT97b3ZlcnJpZGVCb290UHJvbWlzZXM6KCk9PkFlKCksbG9hZEJwb3M6ITEsZGlzYWJsZUZlYXR1cmU6e29mZmxpbmVTZXNzaW9uRGF0YTohMH19Ont9O2Z1bmN0aW9uIFJ0KCl7cmV0dXJuKDAsdS5hNCkoIm9mZmxpbmVXZWIiKXx8TnQoKX1mdW5jdGlvbiBOdCgpe3JldHVybigwLHUuYTQpKCJkZXYtYm9vdE9mZmxpbmUiKX1mdW5jdGlvbiBVdCgpe3JldHVybiFzZWxmLm5hdmlnYXRvci5vbkxpbmV9ZnVuY3Rpb24geXQoZSxuLHIsbz01MDApe3JldHVybiBSdCgpP1V0KCl8fE50KCk/KCgwLHQuQykoIlJhY2VPZmZsaW5lIix7bDplfSkscigpKTpmdW5jdGlvbihlLG4pe2NvbnN0IHI9RGF0ZS5ub3coKTtyZXR1cm4gbmV3IFByb21pc2UoKChvLGkpPT57Y29uc3QgYT1bXSxzPW89PnthLnB1c2gobyksYS5sZW5ndGg9PT1lLmxlbmd0aCYmKCgwLHQuQykoIlJhY2VFcnJvciIse2w6bix0OkRhdGUubm93KCktcixlOmFbMF19KSxpKGFbMF0pKX07bGV0IGM9ITE7Y29uc3QgdT1lPT5pPT57Yz8oMCx0LkMpKCJSYWNlUGFydGljaXBhbnQiLHtsOm4sdDpEYXRlLm5vdygpLXIscDplfSk6KGM9ITAsKDAsdC5DKSgiUmFjZUZpbmlzaCIse2w6bix0OkRhdGUubm93KCktcixwOmV9KSxvKGkpKX07bGV0IGw9MTtmb3IoY29uc3QgdCBvZiBlKXQudGhlbih1KGwrKykscyl9KSl9KFtuKCksKDAsQ2UuWikobyxyKCkpXSxlKTpuKCl9ZnVuY3Rpb24gS3QoZSl7KDAsby5xXykoe2Rpc2FibGVBbGxSZXF1ZXN0czplfSl9Y29uc3Qgd3Q9e1Blb3BsZToiOTBjMzFlOWY3MDJjNDU2NGIxMjAxNjcyNDdkM2NkOWYtZDg5NGE0ZTUtNzJmNC00MjIxLWFiMDAtOTRlMTM1OWRmYjYwLTcxMzciLEZpbGVzSHViOiI1NjQ2OGY2OTkxYzM0ODAyOWM2YmJhNDAzYjQ0NDYwNy03ZjVkNmNkMS03ZmJlLTRhYjEtYmUwMy0zYjJiNmFlYjNlYjQtNzY5NiJ9O2Z1bmN0aW9uIGJ0KCl7dHJ5e2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLCgoKT0+e2RvY3VtZW50LmJvZHkuc3R5bGUubWluV2lkdGg9IjQxOHB4In0pKSwoMCxlLndpKSgpfWNhdGNoKGUpe319IWFzeW5jIGZ1bmN0aW9uKHQsbixyLGksYSl7dmFyIHM7Y29uc3QgYz0oMCxtdC5BKSgpLHU9aHQuX1tjXTshZnVuY3Rpb24oKXt2YXIgZTtpZihOdCgpKXJldHVybiBLdCghMCk7aWYoUnQoKSl7S3QoVXQoKSk7Y29uc3QgdD1udWxsPT0oZT1zZWxmLm5hdmlnYXRvcik/dm9pZCAwOmUuY29ubmVjdGlvbjt0P3QuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIiwoKCk9PntLdChVdCgpKX0pKToidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmKHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJvbmxpbmUiLCgoKT0+S3QoITEpKSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm9mZmxpbmUiLCgoKT0+S3QoITApKSkpfX0oKTtjb25zdCBsPXthcHA6YyxzdGFydHVwQXJpYVRva2VuOnd0W2NdfHwiM2IxZWEwMTQ1MGJlNDhmMjk3NTlkODY4OTMxZTIyNWQtNzE2NzY4NWItZjZmZi00MjFjLWFhNjQtOGFlMTZmZTkyMTI4LTcyODMiLHJ1bkJlZm9yZVN0YXJ0OnQsb3ZlcnJpZGVCb290UHJvbWlzZXM6KCk9Pnl0KCJTZXNzaW9uRGF0YSIsKCgpPT5BZSgpKSwoKCk9PkF0LmltcG9ydEFuZEV4ZWN1dGUoYykpKSxydW5BZnRlclJlcXVlc3RzOmJ0LGxvYWRCcG9zOiEwLHN0cmF0ZWdpZXM6aSxib290c3RyYXA6dnQsb3B0aW9uczp1Lm9wdGlvbnMsaXNEZWVwTGluazpjPT1TdC5ZLk1haWxEZWVwTGlua3x8Yz09U3QuWS5DYWxlbmRhckRlZXBMaW5rLG9uTG9hZGVyUmVtb3ZlZDpuLGhhbmRsZUJvb3RFcnJvcjpyLGNhY2hlc1RvQ2xlYW46bnVsbD09KHM9KDAscHQuSCkoYykpP3ZvaWQgMDpzLmFwcCxlZGl0UXNwOmF9O2F3YWl0IGZ1bmN0aW9uKHQpe2lmKCgwLGUuQ1EpKCkpe2NvbnN0IG49dC5ydW5CZWZvcmVTdGFydDt0LnJ1bkJlZm9yZVN0YXJ0PXQ9PmR0LktFLmltcG9ydEFuZEV4ZWN1dGUoKS50aGVuKCgoKT0+ZHQucjYuaW1wb3J0KCkudGhlbigoZT0+KCgwLG8ucV8pKHtnZXRBdXRoVG9rZW46ZX0pLGR0LnplLmltcG9ydEFuZEV4ZWN1dGUoKSxkdC5vUS5pbXBvcnRBbmRFeGVjdXRlKCkpKSkudGhlbigocj0+e3ZhciBpLGEscyxjLHUsbCxIO3JldHVybigwLGUuQikobnVsbD09KGE9bnVsbD09KGk9bnVsbD09cj92b2lkIDA6ci5hcHApP3ZvaWQgMDppLmhvc3QpP3ZvaWQgMDphLm5hbWUsbnVsbD09KGM9bnVsbD09KHM9bnVsbD09cj92b2lkIDA6ci5hcHApP3ZvaWQgMDpzLmhvc3QpP3ZvaWQgMDpjLmNsaWVudFR5cGUpLCgwLG8ucV8pKHttZXRhT1NDb250ZXh0Ontsb2NhbGU6KG51bGw9PSh1PW51bGw9PXI/dm9pZCAwOnIuYXBwKT92b2lkIDA6dS5sb2NhbGUpfHwiZW4tdXMiLGhvc3ROYW1lOm51bGw9PShIPW51bGw9PShsPW51bGw9PXI/dm9pZCAwOnIuYXBwKT92b2lkIDA6bC5ob3N0KT92b2lkIDA6SC5uYW1lfX0pLG51bGw9PW4/dm9pZCAwOm4odCl9KSkpKX1yZXR1cm4gdXQoey4uLnQscnVuQWZ0ZXJSZXF1ZXN0czplPT57dmFyIG47Y29uc3Qgcj0oMCxJLnJWKSh3aW5kb3csVGUuVS5Kcik7ciYmKDAsVGUuaSkociwibHMiKTtjb25zdCBvPSgwLEkuclYpKHdpbmRvdyxsdC53cCk7byYmKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5sYW5nPW8pLCgwLGx0LnokKSgibHMiKSx0LmxvYWRCcG9zJiYoKDAsZGUuc18pKCk/KDAsSHQuTikoZnQsdC5hcHAsITApOmUudGhlbigoKCk9PigwLEh0Lk4pKGZ0LHQuYXBwKSkpKSxlLnRoZW4oKCgpPT57KDAsbHQueiQpKCJzZCIpfSkpLmNhdGNoKCgoKT0+e30pKSxudWxsPT0obj10LnJ1bkFmdGVyUmVxdWVzdHMpfHxuLmNhbGwodCxlKX19KX0oey4uLmwsLi4uZ3QoYyl9KX0oKX0pKCksKHNlbGYuT3dhPXNlbGYuT3dhfHx7fSkubWFpbGluZGV4PWZ9KSgpLHNlbGYuc2NyaXB0c0xvYWRlZD1zZWxmLnNjcmlwdHNMb2FkZWR8fHt9LHNlbGYuc2NyaXB0c0xvYWRlZFsib3dhLm1haWxpbmRleC5qcyJdPTE7PC9zY3JpcHQ+PC9oZWFkPiA8Ym9keSBjbGFzcz0ibXMtZm9udC1zIGRpc2FibGVUZXh0U2VsZWN0aW9uIG1zLUZhYnJpYy0taXNGb2N1c0hpZGRlbiI+IDxkaXYgaWQ9cHJlbG9hZERpdj4gPHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OidTZWdvZSBVSSBXZXN0RXVyb3BlYW4nO2ZvbnQtd2VpZ2h0OjEwMCI+dDwvc3Bhbj4gPHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OidTZWdvZSBVSSBXZXN0RXVyb3BlYW4nO2ZvbnQtd2VpZ2h0OjIwMCI+dDwvc3Bhbj4gPHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OidTZWdvZSBVSSBXZXN0RXVyb3BlYW4nO2ZvbnQtd2VpZ2h0OjQwMCI+dDwvc3Bhbj4gPHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OidTZWdvZSBVSSBXZXN0RXVyb3BlYW4nO2ZvbnQtd2VpZ2h0OjYwMCI+dDwvc3Bhbj4gPC9kaXY+IDxkaXYgaWQ9YXBwPjwvZGl2PiA8ZGl2IGlkPWxvYWRpbmdTY3JlZW4+IDxkaXYgaWQ9bG9hZGluZ0xvZ28+IDxzdHlsZT46cm9vdHstLXM6MTgwcHg7LS1lbnZXOjEzMHB4Oy0tZW52SDo3MXB4Oy0tY2FsVzoxMThweDstLXNxVzpjYWxjKHZhcigtLWNhbFcpIC8gMyk7LS1zcUg6MzdweDstLWNhbEhIOjIwcHg7LS1jYWxIOmNhbGModmFyKC0tc3FIKSAqIDMgKyB2YXIoLS1jYWxISCkpOy0tY2FsWTpjYWxjKHZhcigtLWNhbEgpICsgMjBweCk7LS1jYWxZRXh0OmNhbGModmFyKC0tY2FsSCkgLSA4MHB4KTstLWNhbFlPdmVyRXh0OmNhbGModmFyKC0tY2FsSCkgLSA5MnB4KTstLWZsYXBTOjk2cHg7LS1mbGFwSDpjYWxjKDAuNTUgKiB2YXIoLS1lbnZIKSk7LS1mbGFwU2NhbGVZOmNhbGModmFyKC0tZmxhcEgpIC8gdmFyKC0tZmxhcFdpZHRoKSk7LS1kdXI6NXN9I2NvbnRhaW5lcnt3aWR0aDp2YXIoLS1zKTtoZWlnaHQ6dmFyKC0tcyk7YW5pbWF0aW9uOmJvdW5jZSB2YXIoLS1kdXIpIGluZmluaXRlfUBrZXlmcmFtZXMgYm91bmNlezAle3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApfTEyLjUle3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApfTIyLjUle3RyYW5zZm9ybTp0cmFuc2xhdGVZKDdweCl9MzIuNSV7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCl9NTAle3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApfTc2LjEle3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApfTg2JXt0cmFuc2Zvcm06dHJhbnNsYXRlWSg3cHgpfTEwMCV7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCl9fSNsb2dve2hlaWdodDoxNzlweDt3aWR0aDoxMzBweDtvdmVyZmxvdzpoaWRkZW47bWFyZ2luLXRvcDotNTlweDttYXJnaW4tbGVmdDoyNXB4fSNjb250YWluZXJTaGFkb3d7cG9zaXRpb246cmVsYXRpdmU7dG9wOjEyMHB4O2xlZnQ6MjVweDt3aWR0aDp2YXIoLS1lbnZXKTtoZWlnaHQ6dmFyKC0tZW52SCk7Ym9yZGVyLXJhZGl1czowIDAgN3B4IDdweDtib3gtc2hhZG93OnJnYmEoMCwwLDAsLjI1KSAwIDRweCA1cHg7YW5pbWF0aW9uOnNoYWRvdy1mYWRlIHZhcigtLWR1cikgaW5maW5pdGV9QGtleWZyYW1lcyBzaGFkb3ctZmFkZXswJXtvcGFjaXR5OjB9MjEuMiV7b3BhY2l0eTowfTQ3JXtvcGFjaXR5OjF9NzAle29wYWNpdHk6MX04MCV7b3BhY2l0eTowfTEwMCV7b3BhY2l0eTowfX0jZmxhcENvbnRhaW5lcnt3aWR0aDp2YXIoLS1lbnZXKTttYXJnaW4tdG9wOjE3OXB4fSNlZnt3aWR0aDp2YXIoLS1lbnZXKTtoZWlnaHQ6dmFyKC0tZW52SCk7Ym9yZGVyLXJhZGl1czowIDAgN3B4IDdweDtvdmVyZmxvdzpoaWRkZW47bWFyZ2luLXRvcDotNDFweH0jZWY+Lmx7d2lkdGg6Mjg3cHg7aGVpZ2h0OnZhcigtLWVudkgpO2JhY2tncm91bmQ6IzI4YThlYTt0cmFuc2Zvcm06dHJhbnNsYXRlKC0xNTNweCwtNzBweCkgcm90YXRlKDI4ZGVnKX0jZWY+LnJ7d2lkdGg6Mjg3cHg7aGVpZ2h0OnZhcigtLWVudkgpO2JhY2tncm91bmQ6IzE0OTBkZjt0cmFuc2Zvcm06dHJhbnNsYXRlKC0xMjBweCw2M3B4KSByb3RhdGUoLTI4ZGVnKX0jZWJ7d2lkdGg6dmFyKC0tZW52Vyk7aGVpZ2h0OjQwcHg7YmFja2dyb3VuZDojMTIzYjZkO21hcmdpbi10b3A6LTcwcHh9I2NhbHtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246cm93O2ZsZXgtd3JhcDp3cmFwO3dpZHRoOnZhcigtLWNhbFcpO2hlaWdodDp2YXIoLS1jYWxIKTtib3JkZXItcmFkaXVzOjdweDtvdmVyZmxvdzpoaWRkZW47bWFyZ2luOjAgYXV0bzttYXJnaW4tdG9wOi0zMDZweDthbmltYXRpb246Y2FsLWJvdW5jZSB2YXIoLS1kdXIpIGluZmluaXRlO2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKDAsMC41LDAsMSk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkodmFyKC0tY2FsWUV4dCkpIHNjYWxlWSgxKX1Aa2V5ZnJhbWVzIGNhbC1ib3VuY2V7MCV7dHJhbnNmb3JtOnRyYW5zbGF0ZVkodmFyKC0tY2FsWSkpIHNjYWxlWSgxKX0xNi41JXt0cmFuc2Zvcm06dHJhbnNsYXRlWSh2YXIoLS1jYWxZKSkgc2NhbGVZKDEpfTI4JXt0cmFuc2Zvcm06dHJhbnNsYXRlWSh2YXIoLS1jYWxZT3ZlckV4dCkpIHNjYWxlWSgxKX0zMSV7dHJhbnNmb3JtOnRyYW5zbGF0ZVkodmFyKC0tY2FsWUV4dCkpIHNjYWxlWSgxLjA1KX0zMyV7dHJhbnNmb3JtOnRyYW5zbGF0ZVkodmFyKC0tY2FsWUV4dCkpIHNjYWxlWSguOTYpfTM0JXt0cmFuc2Zvcm06dHJhbnNsYXRlWSh2YXIoLS1jYWxZRXh0KSkgc2NhbGVZKDEpfTY4LjUle3RyYW5zZm9ybTp0cmFuc2xhdGVZKHZhcigtLWNhbFlFeHQpKSBzY2FsZVkoMSk7YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoMC42NiwtMC4xNiwxLC0wLjI5KX03Ni4xJXt0cmFuc2Zvcm06dHJhbnNsYXRlWSh2YXIoLS1jYWxZKSkgc2NhbGVZKDEpfTEwMCV7dHJhbnNmb3JtOnRyYW5zbGF0ZVkodmFyKC0tY2FsWSkpIHNjYWxlWSgxKX19I2NhbD4udHt3aWR0aDp2YXIoLS1jYWxXKTtoZWlnaHQ6Y2FsYyh2YXIoLS1jYWxISCkgKyAxcHgpO21hcmdpbi1ib3R0b206LTFweDtiYWNrZ3JvdW5kOiMwMzU4YTd9I2NhbD4ucntkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246cm93O3dpZHRoOnZhcigtLWNhbFcpO2hlaWdodDp2YXIoLS1zcUgpfS5ze3dpZHRoOnZhcigtLXNxVyk7aGVpZ2h0OmNhbGModmFyKC0tc3FIKSArIDFweCl9LnMxe2JhY2tncm91bmQ6IzAwNzhkNH0uczJ7YmFja2dyb3VuZDojMjhhOGVhfS5zM3tiYWNrZ3JvdW5kOiM1MGQ5ZmZ9LnM0e2JhY2tncm91bmQ6IzAzNjRiOH0uczV7YmFja2dyb3VuZDojMTQ0NDdkfSNvcGVuZWRGbGFwe3dpZHRoOnZhcigtLWVudlcpO2hlaWdodDoxMDdweDthbmltYXRpb246b3BlbmVkLWZsYXAtc3dpbmcgdmFyKC0tZHVyKSBpbmZpbml0ZTthbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllcigwLjMyLDAsMC42NywwKTt0cmFuc2Zvcm0tb3JpZ2luOnRvcDt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNjhweCkgcm90YXRlM2QoMSwwLDAsLTE4MGRlZyl9QGtleWZyYW1lcyBvcGVuZWQtZmxhcC1zd2luZ3swJXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNjhweCkgcm90YXRlM2QoMSwwLDAsLTkwZGVnKX0xNC41JXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNjhweCkgcm90YXRlM2QoMSwwLDAsLTkwZGVnKX0xNi41JXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNjhweCkgcm90YXRlM2QoMSwwLDAsLTE4MGRlZyl9NTAle3RyYW5zZm9ybTp0cmFuc2xhdGVZKC02OHB4KSByb3RhdGUzZCgxLDAsMCwtMTgwZGVnKX03NCV7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTY4cHgpIHJvdGF0ZTNkKDEsMCwwLC0xODBkZWcpfTc2JXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNjhweCkgcm90YXRlM2QoMSwwLDAsLTkwZGVnKX0xMDAle3RyYW5zZm9ybTp0cmFuc2xhdGVZKC02OHB4KSByb3RhdGUzZCgxLDAsMCwtOTBkZWcpfX0jY2xvc2VkRmxhcHt3aWR0aDp2YXIoLS1lbnZXKTthbmltYXRpb246Y2xvc2VkLWZsYXAtc3dpbmcgdmFyKC0tZHVyKSBpbmZpbml0ZTthbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllcigwLjMyLDAsMC42NywwKTt0cmFuc2Zvcm0tb3JpZ2luOnRvcDt0cmFuc2Zvcm06dHJhbnNsYXRlWShjYWxjKC0xICogdmFyKC0tZW52SCkpKSByb3RhdGUzZCgxLDAsMCw5MGRlZyl9QGtleWZyYW1lcyBjbG9zZWQtZmxhcC1zd2luZ3swJXt0cmFuc2Zvcm06dHJhbnNsYXRlWShjYWxjKC0xICogdmFyKC0tZW52SCkpKSByb3RhdGUzZCgxLDAsMCwwKX04LjUle3RyYW5zZm9ybTp0cmFuc2xhdGVZKGNhbGMoLTEgKiB2YXIoLS1lbnZIKSkpIHJvdGF0ZTNkKDEsMCwwLDApfTE0LjUle3RyYW5zZm9ybTp0cmFuc2xhdGVZKGNhbGMoLTEgKiB2YXIoLS1lbnZIKSkpIHJvdGF0ZTNkKDEsMCwwLDkwZGVnKX01MCV7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoY2FsYygtMSAqIHZhcigtLWVudkgpKSkgcm90YXRlM2QoMSwwLDAsOTBkZWcpfTc2JXt0cmFuc2Zvcm06dHJhbnNsYXRlWShjYWxjKC0xICogdmFyKC0tZW52SCkpKSByb3RhdGUzZCgxLDAsMCw5MGRlZyl9Nzcle3RyYW5zZm9ybTp0cmFuc2xhdGVZKGNhbGMoLTEgKiB2YXIoLS1lbnZIKSkpIHJvdGF0ZTNkKDEsMCwwLDApfTEwMCV7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoY2FsYygtMSAqIHZhcigtLWVudkgpKSkgcm90YXRlM2QoMSwwLDAsMCl9fSNmbWFza3t3aWR0aDp2YXIoLS1lbnZXKTtoZWlnaHQ6MTA3cHg7b3ZlcmZsb3c6aGlkZGVufS5mbGFwVHJpYW5nbGV7d2lkdGg6dmFyKC0tZmxhcFMpO2hlaWdodDp2YXIoLS1mbGFwUyk7YmFja2dyb3VuZDojNTBkOWZmO21hcmdpbjotNDhweCBhdXRvIDAgYXV0bztib3JkZXItcmFkaXVzOjdweDt0cmFuc2Zvcm06c2NhbGVZKC42KSByb3RhdGUoNDVkZWcpfSNvcGVuZWRGbGFwIC5mbGFwVHJpYW5nbGV7YmFja2dyb3VuZDojMTIzYjZkfSNjbG9zZWRGbGFwIC5mbGFwVHJpYW5nbGV7YmFja2dyb3VuZDojNTBkOWZmfTwvc3R5bGU+IDxkaXYgaWQ9Y29udGFpbmVyPiA8ZGl2IGlkPWNvbnRhaW5lclNoYWRvdz48L2Rpdj4gPGRpdiBpZD1sb2dvPiA8ZGl2IGlkPWZsYXBDb250YWluZXI+IDxkaXYgaWQ9b3BlbmVkRmxhcD4gPGRpdiBpZD1mbWFzaz48ZGl2IGNsYXNzPWZsYXBUcmlhbmdsZT48L2Rpdj48L2Rpdj4gPC9kaXY+IDxkaXYgaWQ9Y2FsPiA8ZGl2IGNsYXNzPXQ+PC9kaXY+IDxkaXYgY2xhc3M9cj4gPGRpdiBjbGFzcz0icyBzMSI+PC9kaXY+IDxkaXYgY2xhc3M9InMgczIiPjwvZGl2PiA8ZGl2IGNsYXNzPSJzIHMzIj48L2Rpdj4gPC9kaXY+IDxkaXYgY2xhc3M9cj4gPGRpdiBjbGFzcz0icyBzNCI+PC9kaXY+IDxkaXYgY2xhc3M9InMgczEiPjwvZGl2PiA8ZGl2IGNsYXNzPSJzIHMyIj48L2Rpdj4gPC9kaXY+IDxkaXYgY2xhc3M9cj4gPGRpdiBjbGFzcz0icyBzNSI+PC9kaXY+IDxkaXYgY2xhc3M9InMgczQiPjwvZGl2PiA8ZGl2IGNsYXNzPSJzIHMxIj48L2Rpdj4gPC9kaXY+IDwvZGl2PiA8L2Rpdj4gPGRpdiBpZD1lYj48L2Rpdj4gPGRpdiBpZD1lZj4gPGRpdiBjbGFzcz1yPjwvZGl2PiA8ZGl2IGNsYXNzPWw+PC9kaXY+IDwvZGl2PiA8ZGl2IGlkPWNsb3NlZEZsYXA+IDxkaXYgaWQ9Zm1hc2s+PGRpdiBjbGFzcz1mbGFwVHJpYW5nbGU+PC9kaXY+PC9kaXY+IDwvZGl2PiA8L2Rpdj4gPC9kaXY+IDwvZGl2PiA8c3ZnIGlkPU1TTG9nbyB3aWR0aD05OSBoZWlnaHQ9MjIgeG1sbnM9aHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmc+IDxnIGZpbGw9bm9uZSBmaWxsLXJ1bGU9ZXZlbm9kZD4gPHBhdGggZD0ibTM0LjY0IDEyLjA3LS41OCAxLjY1aC0uMDRjLS4xLS4zOS0uMjgtLjkzLS41Ni0xLjYzbC0zLjE0LTcuOWgtMy4wOHYxMi41NmgyLjAzVjkuMDNsLS4wMy0xLjdjLS4wMS0uMzQtLjA1LS42LS4wNi0uODFoLjA1Yy4xLjQ3LjIuODMuMjggMS4wN2wzLjc4IDkuMTZoMS40MmwzLjc1LTkuMjRjLjA4LS4yMS4xNy0uNjIuMjUtMWguMDVjLS4wNS45Mi0uMSAxLjc2LS4xIDIuMjZ2Ny45OGgyLjE3VjQuMmgtMi45NmwtMy4yMyA3Ljg4eiIgZmlsbD0jNzM3NDc0IC8+IDxwYXRoIGQ9Ik0wIDIwLjk2aDk4LjE1VjBIMHoiLz4gPHBhdGggZmlsbD0jNzM3NDc0IGQ9Ik00Mi44NyAxNi43NWgyLjExdi05aC0yLjExem0xLjA4LTEyLjgyYy0uMzUgMC0uNjYuMTItLjkuMzVhMS4xNyAxLjE3IDAgMCAwLS4zOC44OGMwIC4zNS4xMi42NC4zNy44Ny4yNS4yMy41NS4zNC45LjM0cy42Ny0uMTEuOTItLjM0Yy4yNS0uMjMuMzgtLjUyLjM4LS44NiAwLS4zNC0uMTMtLjY0LS4zNy0uODhhMS4yNiAxLjI2IDAgMCAwLS45Mi0uMzZtOC41MyAzLjczYTUuOSA1LjkgMCAwIDAtMS4xOS0uMTJjLS45NyAwLTEuODMuMi0yLjU3LjYyLS43NC40LTEuMyAxLTEuNyAxLjc0YTUuNTcgNS41NyAwIDAgMC0uMDEgNC45Yy4zNy43LjkgMS4yMyAxLjU4IDEuNi42Ny4zOCAxLjQ1LjU3IDIuMzEuNTcgMS4wMSAwIDEuODctLjIgMi41Ni0uNmwuMDMtLjAydi0xLjk0bC0uMS4wN2MtLjMuMjMtLjY1LjQtMS4wMy41NGEzLjEyIDMuMTIgMCAwIDEtMS4wMS4yYy0uODMgMC0xLjUtLjI2LTEuOTgtLjc4YTMgMyAwIDAgMS0uNzMtMi4xNGMwLS45LjI1LTEuNjUuNzYtMi4yYTIuNiAyLjYgMCAwIDEgMS45OC0uODFjLjcgMCAxLjM4LjIzIDIuMDIuN2wuMDkuMDZWOC4wMUw1My40NiA4YTMuNSAzLjUgMCAwIDAtLjk4LS4zM202Ljk3LS4wNmEyLjE3IDIuMTcgMCAwIDAtMS40MS41Yy0uMzYuMy0uNjIuNy0uODIgMS4yMWgtLjAyVjcuNzVoLTIuMTJ2OWgyLjEydi00LjZjMC0uNzguMTgtMS40My41My0xLjkxLjM0LS40OC44LS43MyAxLjM3LS43M2EyLjUgMi41IDAgMCAxIDEuMTMuM2wuMDkuMDZWNy43NGwtLjA0LS4wMmMtLjItLjA4LS40Ny0uMTItLjgzLS4xMm03LjQ0IDYuODdjLS40LjUtMSAuNzUtMS43OC43NXMtMS40LS4yNi0xLjgzLS43N2EzLjI1IDMuMjUgMCAwIDEtLjY1LTIuMTZjMC0uOTYuMjItMS43LjY1LTIuMjJhMi4yNCAyLjI0IDAgMCAxIDEuOC0uNzhjLjc1IDAgMS4zNC4yNSAxLjc3Ljc0LjQyLjUuNjQgMS4yNC42NCAyLjIgMCAuOTgtLjIgMS43My0uNiAyLjIzTTY1LjIgNy41NGE0LjcgNC43IDAgMCAwLTMuNSAxLjI5IDQuODQgNC44NCAwIDAgMC0xLjI3IDMuNTNjMCAxLjQuNDIgMi41NCAxLjI0IDMuMzZhNC40OCA0LjQ4IDAgMCAwIDMuMzEgMS4yNWMxLjQ0IDAgMi42LS40NCAzLjQ0LTEuMzFhNC44NCA0Ljg0IDAgMCAwIDEuMjYtMy41YzAtMS40My0uNC0yLjU3LTEuMTgtMy4zOWE0LjM4IDQuMzggMCAwIDAtMy4zLTEuMjNtOS4xOCAzLjkzYTQuNiA0LjYgMCAwIDEtMS4yNy0uNjYuOTMuOTMgMCAwIDEtLjI2LS43YzAtLjI1LjEtLjQ2LjMzLS42My4yMi0uMTcuNTItLjI2LjktLjI2YTMuNzQgMy43NCAwIDAgMSAyLjA0LjZsLjEuMDdWNy45M2wtLjA0LS4wMmE0LjcxIDQuNzEgMCAwIDAtLjk3LS4yNiA1LjkzIDUuOTMgMCAwIDAtMS4wNS0uMTFjLTEuMDEgMC0xLjg1LjI1LTIuNDkuNzZhMi40NSAyLjQ1IDAgMCAwLS45NiAyYzAgLjQyLjA3LjguMiAxLjEyLjE1LjMyLjM2LjYuNjUuODMuMjguMjQuNzIuNDggMS4zLjczLjQ5LjIuODUuMzcgMS4wOC41LjIzLjE0LjM5LjI3LjQ4LjQuMDkuMTIuMTMuMy4xMy41IDAgLjYxLS40NS45LTEuMzguOWEzLjggMy44IDAgMCAxLTEuMTctLjIgNC40MiA0LjQyIDAgMCAxLTEuMi0uNjJsLS4xLS4wNnYyLjA2bC4wNC4wMmE2LjAyIDYuMDIgMCAwIDAgMi4zNS41YzEuMS0uMDEgMS45OC0uMjcgMi42Mi0uNzguNjUtLjUyLjk4LTEuMi45OC0yLjA1IDAtLjYtLjE4LTEuMTItLjUzLTEuNTQtLjM0LS40Mi0uOTQtLjgtMS43OC0xLjE0bTkuNjggM2MtLjQuNS0xIC43NS0xLjc4Ljc1LS43NyAwLTEuMzktLjI2LTEuODItLjc3YTMuMjUgMy4yNSAwIDAgMS0uNjUtMi4xNmMwLS45Ni4yMi0xLjcuNjUtMi4yMmEyLjI0IDIuMjQgMCAwIDEgMS44LS43OGMuNzUgMCAxLjM0LjI1IDEuNzYuNzQuNDMuNS42NSAxLjI0LjY1IDIuMiAwIC45OC0uMiAxLjczLS42IDIuMjNtLTEuNjktNi45MmE0LjcgNC43IDAgMCAwLTMuNSAxLjI5IDQuODQgNC44NCAwIDAgMC0xLjI3IDMuNTNjMCAxLjQuNDIgMi41NCAxLjI0IDMuMzZhNC40OCA0LjQ4IDAgMCAwIDMuMzEgMS4yNWMxLjQ0IDAgMi42LS40NCAzLjQ0LTEuMzFhNC44NCA0Ljg0IDAgMCAwIDEuMjYtMy41YzAtMS40My0uNC0yLjU3LTEuMTktMy4zOWE0LjM4IDQuMzggMCAwIDAtMy4yOS0xLjIzbTE1Ljc3IDEuOTRWNy43NUg5NlY1LjA3bC0uMDcuMDItMi4wMS42MmgtLjA0djIuMDRIOTAuN1Y2LjYyYzAtLjUzLjEyLS45My4zNS0xLjIuMjMtLjI3LjU2LS40Ljk5LS40LjMgMCAuNjEuMDcuOTMuMjFsLjA4LjA0VjMuNDVMOTMgMy40M2MtLjMtLjEtLjctLjE1LTEuMi0uMTUtLjYyIDAtMS4xOS4xMy0xLjY4LjQtLjUuMjctLjg5LjY2LTEuMTYgMS4xNWEzLjQxIDMuNDEgMCAwIDAtLjQxIDEuNjh2MS4yNGgtMS41djEuNzNoMS41djcuMjdoMi4xNFY5LjQ4aDMuMTh2NC42MmMwIDEuOS45IDIuODcgMi42NyAyLjg3YTQuMzYgNC4zNiAwIDAgMCAxLjU3LS4zMWwuMDMtLjAyVjE0LjlsLS4wOS4wNmMtLjEyLjA3LS4yNi4xNC0uNDMuMTgtLjE3LjA1LS4zMS4wOC0uNDIuMDgtLjQyIDAtLjczLS4xMi0uOTItLjM0LS4xOS0uMjItLjI5LS42LS4yOS0xLjE1VjkuNDhoMi4xNXoiLz4gPHBhdGggZmlsbD0jRjA1MTI0IGQ9Ik0wIDkuOTZoOS45NlYwSDB6Ii8+IDxwYXRoIGZpbGw9IzdFQkI0MiBkPSJNMTEgOS45Nmg5Ljk1VjBIMTF6Ii8+IDxwYXRoIGZpbGw9IzMyQTBEQSBkPSJNMCAyMC45Nmg5Ljk2VjExSDB6Ii8+IDxwYXRoIGZpbGw9I0ZEQjgxMyBkPSJNMTEgMjAuOTZoOS45NVYxMUgxMXoiLz4gPC9nPiA8L3N2Zz4gPC9kaXY+IDwvYm9keT4gPC9odG1sPiA="> </div>
<div><br>
</div>
<span>-- </span><br>
<div dir="ltr" data-smartmail="gmail_signature">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr"><font face="arial, sans-serif">Charmaine Chua, Ph.D.</font>
<div><font face="arial, sans-serif"><a href="https://www.global.ucsb.edu/people/charmaine-chua" data-auth="NotApplicable" data-loopstyle="link">Assistant Professor</a> </font><span style="font-family:arial,sans-serif">of Global Studies</span></div>
<div><font face="arial, sans-serif">University of California, Santa Barbara</font></div>
<div><font face="arial, sans-serif"><span style="color: rgb(0, 0, 0);">Associate Editor, </span><i style="color: rgb(0, 0, 0);"><a href="http://epd.sagepub.com/" data-auth="NotApplicable" style="margin: 0px; color: rgb(17, 85, 204);" data-loopstyle="link">Environment
 and Planning D: Society and Space</a> </i><br>
</font></div>
<div><font face="arial, sans-serif"><i style="color: rgb(0, 0, 0);"><br>
</i></font></div>
<div>
<div><span style="font-family:arial,sans-serif">Working on unceded Chumash lands and waters</span><br>
</div>
<div><font face="arial, sans-serif">Pronouns: she/her/hers or they/them/theirs<br>
</font></div>
</div>
<div><font face="arial, sans-serif"><br>
</font></div>
<div><font face="arial, sans-serif">New: Chua and Cox. <a href="https://www.dropbox.com/s/dgmfxw63jmubgd6/Charmaine%20Chua%20%26%20Spencer%20Cox%20SR%202023.pdf?dl=0" data-auth="NotApplicable" style="letter-spacing:0.56px; white-space:pre-wrap; outline:0px" data-loopstyle="link" id="OWA21c5aa98-00e6-7c70-a319-19aa5f302f89" class="OWAAutoLink">“Battling
 the Behemoth: Amazon and the Rise of the New US Working Class.”</a><span style="color: rgb(0, 0, 0);"> </span><em style="letter-spacing: 0.56px; white-space: pre-wrap; color: rgb(0, 0, 0);">The Socialist Register</em><span style="letter-spacing: 0.56px; white-space: pre-wrap; color: rgb(0, 0, 0);">
 2023 </span><br>
</font></div>
<div><font face="arial, sans-serif">More work available at <a href="http://www.charmainechua.com/" data-auth="NotApplicable" data-loopstyle="link">www.charmainechua.com</a></font><span style="font-family: arial, sans-serif; letter-spacing: 0.56px; white-space: pre-wrap; color: rgb(0, 0, 0);"><br>
</span></div>
<div><br>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>